GraphQL server in PHP, implemented through the PoP API
Follow the instructions in the GraphQL by PoP installation page.
Via Composer
composer require graphql-by-pop/graphql-server
To enable pretty API endpoint /api/graphql/
, follow the instructions here
The source code is hosted on the PoP monorepo, under GraphQLByPoP/packages/graphql-server
.
Initialize the component:
\PoP\Root\App::stockAndInitializeComponentClasses([([
\GraphQLByPoP\GraphQLServer\Component::class,
]);
All GraphQL queries are supported (click on the links below to try them out in GraphiQL):
- Fields
- Field arguments
- Aliases
- Fragments
- Operation name
- Variables
- Variables inside fragments
- Default variables
- Directives
- Fragments with directives
- Inline fragments
GraphQL by PoP supports query batching. This query contains all queries from above:
An upgraded implementation of the GraphQL server, which enables to resolve queries as a scripting language, is found under this repo.
It supports several features not currently defined by the GraphQL spec, including composable fields and composable directives.
By installing the REST package, the GraphQL server can also satisfy REST endpoints, from a single source of truth. Check out these example links:
The GraphQL API (running on top of a WordPress site) is deployed under this endpoint: https://newapi.getpop.org/api/graphql/
You can play with it through the following clients:
- GraphiQL: https://newapi.getpop.org/graphiql/
- GraphQL Voyager: https://newapi.getpop.org/graphql-interactive/
Requirements:
- PHP 8.0+ for development
- PHP 7.1+ for production
Check the list of Supported PHP features in leoloso/PoP
Via Rector (dry-run mode):
composer preview-code-downgrade
To check the coding standards via PHP CodeSniffer, run:
composer check-style
To automatically fix issues, run:
composer fix-style
Please see CHANGELOG for more information on what has changed recently.
To execute PHPUnit, run:
composer test
To execute PHPStan, run:
composer analyse
To report a bug or request a new feature please do it on the PoP monorepo issue tracker.
We welcome contributions for this package on the PoP monorepo (where the source code for this package is hosted).
Please see CONTRIBUTING and CODE_OF_CONDUCT for details.
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
GNU General Public License v2 (or later). Please see License File for more information.