Extension:GraphQL
Appearance
Release status: experimental |
|
|---|---|
| Implementation | API |
| Description | GraphQL proxy for the Action API |
| Author(s) | David Barratt (DBarratt (WMF)talk) |
| MediaWiki | >= 1.40 |
| PHP | < 8.0 |
| License | GNU General Public License 3.0 or later |
| Download | |
|
|
| Translate the GraphQL extension if it is available at translatewiki.net | |
| Issues | Open tasks · Report a bug |
GraphQL extension exposes a /graphql endpoint in MediaWiki as a proxy for the Action API and REST API.
Installation
[edit]- Download and move the extracted
GraphQLfolder to yourextensions/directory.
Developers and code contributors should install the extension from Git instead, using:cd extensions/ git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/GraphQL
- Only when installing from Git, run Composer to install PHP dependencies, by issuing
composer install --no-devin the extension directory. (See T173141 for potential complications.) - Add the following code at the bottom of your LocalSettings.php file:
wfLoadExtension( 'GraphQL' );
- Install npm dependencies with
npm installin the extension directory
Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.
Usage
[edit]- The GraphQL endpoint is exposed at
Special:GraphQLwith an alias at/graphql. - The GraphQL Sandbox can be accessed at
Special:GraphQLSandbox. The sandbox uses the GraphiQL in-browser GraphQL IDE. - The federation service endpoint is exposed at
Special:GraphQL/Federationwith an alias at/graphql/federation.
Project Goals
[edit]- A proxy for the Action API and REST API. This extension should not expose functionality that is not already available in the existing APIs. This extension will therefore exist as a convenience to developers making bulk or recursive requests to the existing APIs.
- A federated service. This extension should be compatible with Apollo's Federation Specification or other federated specifications to allow a centralized gateway like Tool:GraphQL to make distributed GraphQL queries.
