{"id":21988642,"url":"https://github.com/graphqlbypop/graphql-server","last_synced_at":"2025-10-05T21:50:59.708Z","repository":{"id":37699385,"uuid":"233187582","full_name":"GraphQLByPoP/graphql-server","owner":"GraphQLByPoP","description":"[READ ONLY] CMS-agnostic GraphQL server in PHP","archived":false,"fork":false,"pushed_at":"2025-09-15T07:37:07.000Z","size":1725,"stargazers_count":11,"open_issues_count":1,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-15T09:33:06.333Z","etag":null,"topics":["api","graphql","php","pop","server"],"latest_commit_sha":null,"homepage":"https://graphql-by-pop.com","language":"PHP","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GraphQLByPoP.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"leoloso"}},"created_at":"2020-01-11T06:32:02.000Z","updated_at":"2025-09-15T07:37:10.000Z","dependencies_parsed_at":"2023-02-15T20:00:33.930Z","dependency_job_id":"341ef8a8-ff30-41be-95d8-117427a04d37","html_url":"https://github.com/GraphQLByPoP/graphql-server","commit_stats":{"total_commits":913,"total_committers":3,"mean_commits":304.3333333333333,"dds":"0.20920043811610078","last_synced_commit":"595b457e685ab85b3f8df480ec4e7903b01dd3df"},"previous_names":[],"tags_count":133,"template":false,"template_full_name":null,"purl":"pkg:github/GraphQLByPoP/graphql-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GraphQLByPoP%2Fgraphql-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GraphQLByPoP%2Fgraphql-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GraphQLByPoP%2Fgraphql-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GraphQLByPoP%2Fgraphql-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GraphQLByPoP","download_url":"https://codeload.github.com/GraphQLByPoP/graphql-server/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GraphQLByPoP%2Fgraphql-server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278526244,"owners_count":26001325,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-05T02:00:06.059Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","graphql","php","pop","server"],"created_at":"2024-11-29T19:20:30.538Z","updated_at":"2025-10-05T21:50:59.682Z","avatar_url":"https://github.com/GraphQLByPoP.png","language":"PHP","funding_links":["https://github.com/sponsors/leoloso"],"categories":[],"sub_categories":[],"readme":"# GraphQL server\n\n\u003c!--\n[![Build Status][ico-travis]][link-travis]\n\u003c!-- [![Quality Score][ico-code-quality]][link-code-quality]\n[![Software License][ico-license]](LICENSE.md) --\u003e\n\n\u003c!--\n[![Latest Version on Packagist][ico-version]][link-packagist]\n[![Coverage Status][ico-scrutinizer]][link-scrutinizer]\n[![Total Downloads][ico-downloads]][link-downloads]\n--\u003e\n\nGraphQL server in PHP, implemented through the PoP API\n\n## Install\n\n### Installing the GraphQL server\n\nFollow the instructions in the [GraphQL by PoP installation page](https://graphql-by-pop.com/docs/getting-started/installation/).\n\n### Installing the library in a PoP application\n\nVia Composer\n\n``` bash\ncomposer require graphql-by-pop/graphql-server\n```\n\nTo enable pretty API endpoint `/api/graphql/`, follow the instructions [here](https://github.com/PoP-PoPAPI/api#enable-pretty-permalinks)\n\n\u003c!-- \u003e Note: if you wish to install a fully-working API, please follow the instructions under [Bootstrap a PoP API for WordPress](https://github.com/leoloso/PoP-API-WP) (even though CMS-agnostic, only the WordPress adapters have been presently implemented). --\u003e\n\n\u003c!--\n### Enable pretty permalinks\n\nAdd the following code in the `.htaccess` file to enable API endpoint `/api/graphql/`:\n\n```apache\n\u003cIfModule mod_rewrite.c\u003e\nRewriteEngine On\nRewriteBase /\n\n# Rewrite from /some-url/api/graphql/ to /some-url/?scheme=api\u0026datastructure=graphql\nRewriteCond %{SCRIPT_FILENAME} !-d\nRewriteCond %{SCRIPT_FILENAME} !-f\nRewriteRule ^(.*)/api/graphql/?$ /$1/?scheme=api\u0026datastructure=graphql [L,P,QSA]\n\n# b. Homepage single endpoint (root)\n# Rewrite from api/graphql/ to /?scheme=api\u0026datastructure=graphql\nRewriteCond %{SCRIPT_FILENAME} !-d\nRewriteCond %{SCRIPT_FILENAME} !-f\nRewriteRule ^api/graphql/?$ /?scheme=api\u0026datastructure=graphql [L,P,QSA]\n\u003c/IfModule\u003e\n```\n--\u003e\n\n## Development\n\nThe source code is hosted on the [GatoGraphQL monorepo](https://github.com/GatoGraphQL/GatoGraphQL), under [`GraphQLByPoP/packages/graphql-server`](https://github.com/GatoGraphQL/GatoGraphQL/tree/master/layers/GraphQLByPoP/packages/graphql-server).\n\n## Usage\n\nInitialize the component:\n\n``` php\n\\PoP\\Root\\App::stockAndInitializeModuleClasses([([\n    \\GraphQLByPoP\\GraphQLServer\\Module::class,\n]);\n```\n\n\u003c!-- ## 100% compliant of GraphQL syntax\n\nAll [GraphQL queries](https://graphql.org/learn/queries/) are supported (click on the links below to try them out in [GraphiQL](https://newapi.getpop.org/graphiql/)):\n\n- \u003ca href=\"https://newapi.getpop.org/graphiql/?query=query%20%7B%0A%20%20posts%20%7B%0A%20%20%20%20id%0A%20%20%20%20url%0A%20%20%20%20title%0A%20%20%20%20excerpt%0A%20%20%20%20date%0A%20%20%20%20tags%20%7B%0A%20%20%20%20%20%20name%0A%20%20%20%20%7D%0A%20%20%20%20comments%20%7B%0A%20%20%20%20%20%20content%0A%20%20%20%20%20%20author%20%7B%0A%20%20%20%20%20%20%20%20id%0A%20%20%20%20%20%20%20%20name%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D\" target=\"leoloso-graphiql\"\u003eFields\u003c/a\u003e\n- \u003ca href=\"https://newapi.getpop.org/graphiql/?query=query%20%7B%0A%20%20posts(pagination:{limit%3A2})%20%7B%0A%20%20%20%20id%0A%20%20%20%20title%0A%20%20%20%20author%20%7B%0A%20%20%20%20%20%20id%0A%20%20%20%20%20%20name%0A%20%20%20%20%20%20posts(pagination:{limit%3A3})%20%7B%0A%20%20%20%20%20%20%20%20id%0A%20%20%20%20%20%20%20%20url%0A%20%20%20%20%20%20%20%20title%0A%20%20%20%20%20%20%20%20dateStr(format%3A%22d%2Fm%2FY%22)%0A%20%20%20%20%20%20%20%20tags%20%7B%0A%20%20%20%20%20%20%20%20%20%20name%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20featuredImage%20%7B%0A%20%20%20%20%20%20%20%20%20%20id%0A%20%20%20%20%20%20%20%20%20%20src%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D\" target=\"leoloso-graphiql\"\u003eField arguments\u003c/a\u003e\n- \u003ca href=\"https://newapi.getpop.org/graphiql/?query=query%20%7B%0A%20%20rootPosts%3A%20posts(pagination:{limit%3A2})%20%7B%0A%20%20%20%20id%0A%20%20%20%20title%0A%20%20%20%20author%20%7B%0A%20%20%20%20%20%20id%0A%20%20%20%20%20%20name%0A%20%20%20%20%20%20nestedPosts%3A%20posts(pagination:{limit%3A3})%20%7B%0A%20%20%20%20%20%20%20%20id%0A%20%20%20%20%20%20%20%20url%0A%20%20%20%20%20%20%20%20title%0A%20%20%20%20%20%20%20%20date%0A%20%20%20%20%20%20%20%20formattedDate%3A%20dateStr(format%3A%22d%2Fm%2FY%22)%0A%20%20%20%20%20%20%20%20tags%20%7B%0A%20%20%20%20%20%20%20%20%20%20name%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20featuredImage%20%7B%0A%20%20%20%20%20%20%20%20%20%20id%0A%20%20%20%20%20%20%20%20%20%20src%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D\" target=\"leoloso-graphiql\"\u003eAliases\u003c/a\u003e\n- \u003ca href=\"https://newapi.getpop.org/graphiql/?query=query%20%7B%0A%20%20rootPosts%3A%20posts(pagination:{limit%3A2})%20%7B%0A%20%20%20%20...postProperties%0A%20%20%20%20author%20%7B%0A%20%20%20%20%20%20id%0A%20%20%20%20%20%20name%0A%20%20%20%20%20%20nestedPosts%3A%20posts(pagination:{limit%3A3})%20%7B%0A%20%20%20%20%20%20%20%20url%0A%20%20%20%20%20%20%20%20...postProperties%0A%20%20%20%20%20%20%20%20formattedDate%3A%20dateStr(format%3A%22d%2Fm%2FY%22)%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D%0Afragment%20postProperties%20on%20Post%20%7B%0A%20%20id%0A%20%20title%0A%20%20tags%20%7B%0A%20%20%20%20name%0A%20%20%7D%0A%7D\" target=\"leoloso-graphiql\"\u003eFragments\u003c/a\u003e\n- \u003ca href=\"https://newapi.getpop.org/graphiql/?query=query%20GetPosts%20%7B%0A%20%20rootPosts%3A%20posts(pagination:{limit%3A2})%20%7B%0A%20%20%20%20id%0A%20%20%20%20title%0A%20%20%20%20author%20%7B%0A%20%20%20%20%20%20id%0A%20%20%20%20%20%20name%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D\u0026operationName=GetPosts\" target=\"leoloso-graphiql\"\u003eOperation name\u003c/a\u003e\n- \u003ca href=\"https://newapi.getpop.org/graphiql/?query=query%20GetPosts(%24rootLimit%3A%20Int%2C%20%24nestedLimit%3A%20Int%2C%20%24dateFormat%3A%20String)%20%7B%0A%20%20rootPosts%3A%20posts(pagination:{limit%3A%24rootLimit})%20%7B%0A%20%20%20%20id%0A%20%20%20%20title%0A%20%20%20%20author%20%7B%0A%20%20%20%20%20%20id%0A%20%20%20%20%20%20name%0A%20%20%20%20%20%20nestedPosts%3A%20posts(pagination:{limit%3A%24nestedLimit})%20%7B%0A%20%20%20%20%20%20%20%20id%0A%20%20%20%20%20%20%20%20url%0A%20%20%20%20%20%20%20%20title%0A%20%20%20%20%20%20%20%20date%0A%20%20%20%20%20%20%20%20formattedDate%3A%20dateStr(format%3A%24dateFormat)%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D\u0026operationName=GetPosts\u0026variables=%7B%0A%20%20%22rootLimit%22%3A%203%2C%0A%20%20%22nestedLimit%22%3A%202%2C%0A%20%20%22dateFormat%22%3A%20%22d%2Fm%2FY%22%0A%7D\" target=\"leoloso-graphiql\"\u003eVariables\u003c/a\u003e\n- \u003ca href=\"https://newapi.getpop.org/graphiql/?query=query%20GetPosts(%24tagsLimit%3A%20Int)%20%7B%0A%20%20rootPosts%3A%20posts(pagination:{limit%3A2})%20%7B%0A%20%20%20%20...postProperties%0A%20%20%20%20author%20%7B%0A%20%20%20%20%20%20id%0A%20%20%20%20%20%20name%0A%20%20%20%20%20%20nestedPosts%3A%20posts(pagination:{limit%3A3})%20%7B%0A%20%20%20%20%20%20%20%20url%0A%20%20%20%20%20%20%20%20...postProperties%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D%0Afragment%20postProperties%20on%20Post%20%7B%0A%20%20id%0A%20%20title%0A%20%20tags(pagination:{limit%3A%24tagsLimit})%20%7B%0A%20%20%20%20name%0A%20%20%7D%0A%7D\u0026operationName=GetPosts\u0026variables=%7B%0A%20%20%22tagsLimit%22%3A%203%0A%7D\" target=\"leoloso-graphiql\"\u003eVariables inside fragments\u003c/a\u003e\n- \u003ca href=\"https://newapi.getpop.org/graphiql/?query=query%20GetPosts(%24rootLimit%3A%20Int%20%3D%203%2C%20%24nestedLimit%3A%20Int%20%3D%202%2C%20%24dateFormat%3A%20String%20%3D%20%22d%2Fm%2FY%22)%20%7B%0A%20%20rootPosts%3A%20posts(pagination:{limit%3A%24rootLimit})%20%7B%0A%20%20%20%20id%0A%20%20%20%20title%0A%20%20%20%20author%20%7B%0A%20%20%20%20%20%20id%0A%20%20%20%20%20%20name%0A%20%20%20%20%20%20nestedPosts%3A%20posts(pagination:{limit%3A%24nestedLimit})%20%7B%0A%20%20%20%20%20%20%20%20id%0A%20%20%20%20%20%20%20%20url%0A%20%20%20%20%20%20%20%20title%0A%20%20%20%20%20%20%20%20date%0A%20%20%20%20%20%20%20%20formattedDate%3A%20dateStr(format%3A%24dateFormat)%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D\u0026operationName=GetPosts\" target=\"leoloso-graphiql\"\u003eDefault variables\u003c/a\u003e\n- \u003ca href=\"https://newapi.getpop.org/graphiql/?query=query%20GetPosts(%24includeAuthor%3A%20Boolean!%2C%20%24rootLimit%3A%20Int%20%3D%203%2C%20%24nestedLimit%3A%20Int%20%3D%202)%20%7B%0A%20%20rootPosts%3A%20posts(pagination:{limit%3A%24rootLimit})%20%7B%0A%20%20%20%20id%0A%20%20%20%20title%0A%20%20%20%20author%20%40include(if%3A%20%24includeAuthor)%20%7B%0A%20%20%20%20%20%20id%0A%20%20%20%20%20%20name%0A%20%20%20%20%20%20nestedPosts%3A%20posts(pagination:{limit%3A%24nestedLimit})%20%7B%0A%20%20%20%20%20%20%20%20id%0A%20%20%20%20%20%20%20%20url%0A%20%20%20%20%20%20%20%20title%0A%20%20%20%20%20%20%20%20date%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D\u0026operationName=GetPosts\u0026variables=%7B%0A%20%20%22includeAuthor%22%3A%20true%0A%7D\" target=\"leoloso-graphiql\"\u003eDirectives\u003c/a\u003e\n- \u003ca href=\"https://newapi.getpop.org/graphiql/?query=query%20GetPosts(%24includeAuthor%3A%20Boolean!%2C%20%24rootLimit%3A%20Int%20%3D%203%2C%20%24nestedLimit%3A%20Int%20%3D%202)%20%7B%0A%20%20rootPosts%3A%20posts(pagination:{limit%3A%24rootLimit})%20%7B%0A%20%20%20%20id%0A%20%20%20%20title%0A%20%20%20%20...postProperties%0A%20%20%7D%0A%7D%0Afragment%20postProperties%20on%20Post%20%7B%0A%20%20author%20%40include(if%3A%20%24includeAuthor)%20%7B%0A%20%20%20%20id%0A%20%20%20%20name%0A%20%20%20%20nestedPosts%3A%20posts(pagination:{limit%3A%24nestedLimit})%20%7B%0A%20%20%20%20%20%20id%0A%20%20%20%20%20%20url%0A%20%20%20%20%20%20title%0A%20%20%20%20%20%20date%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D\u0026operationName=GetPosts\u0026variables=%7B%0A%20%20%22includeAuthor%22%3A%20true%0A%7D\" target=\"leoloso-graphiql\"\u003eFragments with directives\u003c/a\u003e\n- \u003ca href=\"https://newapi.getpop.org/graphiql/?query=query%20GetPosts(%24rootLimit%3A%20Int%20%3D%203%2C%20%24nestedLimit%3A%20Int%20%3D%202)%20%7B%0A%20%20rootPosts%3A%20posts(pagination:{limit%3A%24rootLimit})%20%7B%0A%20%20%20%20id%0A%20%20%20%20title%0A%20%20%20%20author%20%7B%0A%20%20%20%20%20%20id%0A%20%20%20%20%20%20name%0A%20%20%20%20%20%20customPosts(pagination:{limit%3A%24nestedLimit})%20%7B%0A%20%20%20%20%20%20%20%20__typename%0A%20%20%20%20%20%20%20%20title%0A%20%20%20%20%20%20%20%20...%20on%20Post%20%7B%0A%20%20%20%20%20%20%20%20%20%20excerpt%0A%20%20%20%20%20%20%20%20%20%20tags%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20name%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20...%20on%20Page%20%7B%0A%20%20%20%20%20%20%20%20%20%20date%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D\u0026operationName=GetPosts\" target=\"leoloso-graphiql\"\u003eInline fragments\u003c/a\u003e\n\nGraphQL by PoP supports query batching. This query contains all queries from above:\n\n- \u003ca href=\"https://newapi.getpop.org/graphiql/?query=query%20FieldsExample%20%7B%0A%20%20posts%20%7B%0A%20%20%20%20id%0A%20%20%20%20url%0A%20%20%20%20title%0A%20%20%20%20excerpt%0A%20%20%20%20date%0A%20%20%20%20tags%20%7B%0A%20%20%20%20%20%20name%0A%20%20%20%20%7D%0A%20%20%20%20comments%20%7B%0A%20%20%20%20%20%20content%0A%20%20%20%20%20%20author%20%7B%0A%20%20%20%20%20%20%20%20id%0A%20%20%20%20%20%20%20%20name%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D%0A%0Aquery%20FieldArgumentsExample%20%7B%0A%20%20twoposts%3Aposts(pagination:{limit%3A2})%20%7B%0A%20%20%20%20id%0A%20%20%20%20title%0A%20%20%20%20author%20%7B%0A%20%20%20%20%20%20id%0A%20%20%20%20%20%20name%0A%20%20%20%20%20%20posts(pagination:{limit%3A3})%20%7B%0A%20%20%20%20%20%20%20%20id%0A%20%20%20%20%20%20%20%20url%0A%20%20%20%20%20%20%20%20title%0A%20%20%20%20%20%20%20%20formattedDate%3AdateStr(format%3A%22d%2Fm%2FY%22)%0A%20%20%20%20%20%20%20%20tags%20%7B%0A%20%20%20%20%20%20%20%20%20%20name%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20featuredImage%20%7B%0A%20%20%20%20%20%20%20%20%20%20id%0A%20%20%20%20%20%20%20%20%20%20src%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D%0A%0Aquery%20AliasesExample%20%7B%0A%20%20rootPosts%3A%20posts(pagination:{limit%3A2})%20%7B%0A%20%20%20%20id%0A%20%20%20%20title%0A%20%20%20%20author%20%7B%0A%20%20%20%20%20%20id%0A%20%20%20%20%20%20name%0A%20%20%20%20%20%20nestedPosts%3A%20posts(pagination:{limit%3A3})%20%7B%0A%20%20%20%20%20%20%20%20id%0A%20%20%20%20%20%20%20%20url%0A%20%20%20%20%20%20%20%20title%0A%20%20%20%20%20%20%20%20date%0A%20%20%20%20%20%20%20%20formattedDate%3A%20dateStr(format%3A%22d%2Fm%2FY%22)%0A%20%20%20%20%20%20%20%20tags%20%7B%0A%20%20%20%20%20%20%20%20%20%20name%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20featuredImage%20%7B%0A%20%20%20%20%20%20%20%20%20%20id%0A%20%20%20%20%20%20%20%20%20%20src%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D%0A%0Aquery%20FragmentsExample%20%7B%0A%20%20rootPosts%3A%20posts(pagination:{limit%3A2})%20%7B%0A%20%20%20%20...postProperties%0A%20%20%20%20author%20%7B%0A%20%20%20%20%20%20id%0A%20%20%20%20%20%20name%0A%20%20%20%20%20%20nestedPosts%3A%20posts(pagination:{limit%3A3})%20%7B%0A%20%20%20%20%20%20%20%20url%0A%20%20%20%20%20%20%20%20...postProperties%0A%20%20%20%20%20%20%20%20formattedDate%3A%20dateStr(format%3A%22d%2Fm%2FY%22)%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D%0Afragment%20postProperties%20on%20Post%20%7B%0A%20%20id%0A%20%20title%0A%20%20tags%20%7B%0A%20%20%20%20name%0A%20%20%7D%0A%7D%0A%0Aquery%20VariablesExample(%24rootLimit%3A%20Int%2C%20%24nestedLimit%3A%20Int%2C%20%24dateFormat%3A%20String)%20%7B%0A%20%20rootPosts%3A%20posts(pagination:{limit%3A%24rootLimit})%20%7B%0A%20%20%20%20id%0A%20%20%20%20title%0A%20%20%20%20author%20%7B%0A%20%20%20%20%20%20id%0A%20%20%20%20%20%20name%0A%20%20%20%20%20%20nestedPosts%3A%20posts(pagination:{limit%3A%24nestedLimit})%20%7B%0A%20%20%20%20%20%20%20%20id%0A%20%20%20%20%20%20%20%20url%0A%20%20%20%20%20%20%20%20title%0A%20%20%20%20%20%20%20%20date%0A%20%20%20%20%20%20%20%20formattedDate%3A%20dateStr(format%3A%24dateFormat)%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D%0A%0Aquery%20VariablesInsideFragmentsExample(%24tagsLimit%3A%20Int)%20%7B%0A%20%20rootPosts%3A%20posts(pagination:{limit%3A2})%20%7B%0A%20%20%20%20...varInFragPostProperties%0A%20%20%20%20author%20%7B%0A%20%20%20%20%20%20id%0A%20%20%20%20%20%20name%0A%20%20%20%20%20%20nestedPosts%3A%20posts(pagination:{limit%3A3})%20%7B%0A%20%20%20%20%20%20%20%20url%0A%20%20%20%20%20%20%20%20...varInFragPostProperties%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D%0Afragment%20varInFragPostProperties%20on%20Post%20%7B%0A%20%20id%0A%20%20title%0A%20%20tags(pagination:{limit%3A%24tagsLimit})%20%7B%0A%20%20%20%20name%0A%20%20%7D%0A%7D%0A%0Aquery%20DefaultVariablesExample(%24someLimit%3A%20Int%20%3D%203%2C%20%24anotherLimit%3A%20Int%20%3D%202%2C%20%24someDateFormat%3A%20String%20%3D%20%22d%2Fm%2FY%22)%20%7B%0A%20%20varRootPosts%3A%20posts(pagination:{limit%3A%24someLimit})%20%7B%0A%20%20%20%20id%0A%20%20%20%20title%0A%20%20%20%20author%20%7B%0A%20%20%20%20%20%20id%0A%20%20%20%20%20%20name%0A%20%20%20%20%20%20nestedPosts%3A%20posts(pagination:{limit%3A%24anotherLimit})%20%7B%0A%20%20%20%20%20%20%20%20id%0A%20%20%20%20%20%20%20%20url%0A%20%20%20%20%20%20%20%20title%0A%20%20%20%20%20%20%20%20date%0A%20%20%20%20%20%20%20%20formattedDate%3A%20dateStr(format%3A%24someDateFormat)%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D%0A%0Aquery%20DirectivesExample(%24includeAuthor%3A%20Boolean!%2C%20%24giveLimit%3A%20Int%20%3D%203%2C%20%24nextLimit%3A%20Int%20%3D%202)%20%7B%0A%20%20rootPosts%3A%20posts(pagination:{limit%3A%24giveLimit})%20%7B%0A%20%20%20%20id%0A%20%20%20%20title%0A%20%20%20%20author%20%40include(if%3A%20%24includeAuthor)%20%7B%0A%20%20%20%20%20%20id%0A%20%20%20%20%20%20name%0A%20%20%20%20%20%20nestedPosts%3A%20posts(pagination:{limit%3A%24nextLimit})%20%7B%0A%20%20%20%20%20%20%20%20id%0A%20%20%20%20%20%20%20%20url%0A%20%20%20%20%20%20%20%20title%0A%20%20%20%20%20%20%20%20date%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D%0A%0Aquery%20FragmentsWithDirectivesExample(%24printAuthor%3A%20Boolean!%2C%20%24fragRootLimit%3A%20Int%20%3D%203%2C%20%24fragNestedLimit%3A%20Int%20%3D%202)%20%7B%0A%20%20rootPosts%3A%20posts(pagination:{limit%3A%24fragRootLimit})%20%7B%0A%20%20%20%20id%0A%20%20%20%20title%0A%20%20%20%20...fragWithDirecPostProperties%0A%20%20%7D%0A%7D%0Afragment%20fragWithDirecPostProperties%20on%20Post%20%7B%0A%20%20author%20%40include(if%3A%20%24printAuthor)%20%7B%0A%20%20%20%20id%0A%20%20%20%20name%0A%20%20%20%20nestedPosts%3A%20posts(pagination:{limit%3A%24fragNestedLimit})%20%7B%0A%20%20%20%20%20%20id%0A%20%20%20%20%20%20url%0A%20%20%20%20%20%20title%0A%20%20%20%20%20%20date%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D%0A%0Aquery%20InlineFragmentsExample(%24inlineLimit%3A%20Int%20%3D%203%2C%20%24customLimit%3A%20Int%20%3D%202)%20%7B%0A%20%20inlinePosts%3A%20posts(pagination:{limit%3A%24inlineLimit})%20%7B%0A%20%20%20%20id%0A%20%20%20%20title%0A%20%20%20%20author%20%7B%0A%20%20%20%20%20%20id%0A%20%20%20%20%20%20name%0A%20%20%20%20%20%20customPosts(pagination:{limit%3A%24customLimit})%20%7B%0A%20%20%20%20%20%20%20%20__typename%0A%20%20%20%20%20%20%20%20title%0A%20%20%20%20%20%20%20%20...%20on%20Post%20%7B%0A%20%20%20%20%20%20%20%20%20%20excerpt%0A%20%20%20%20%20%20%20%20%20%20tags%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20name%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20...%20on%20Page%20%7B%0A%20%20%20%20%20%20%20%20%20%20date%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D\u0026operationName=FragmentsWithDirectivesExample\u0026variables=%7B%0A%20%20%22rootLimit%22%3A%203%2C%0A%20%20%22nestedLimit%22%3A%202%2C%0A%20%20%22dateFormat%22%3A%20%22d%2Fm%2FY%22%2C%0A%20%20%22tagsLimit%22%3A%203%2C%0A%20%20%22includeAuthor%22%3A%20true%2C%0A%20%20%22printAuthor%22%3A%20true%0A%7D\"\u003eQuery batching\u003c/a\u003e --\u003e\n\n\u003c!-- ## Extended GraphQL\n\nAn upgraded implementation of the GraphQL server, which enables to resolve [queries as a scripting language](https://leoloso.com/posts/demonstrating-pop-api-graphql-on-steroids/), is found under [this repo](https://github.com/PoP-PoPAPI/api-graphql).\n\nIt supports several [features](https://leoloso.com/posts/pop-api-features/) not currently defined by the GraphQL spec, including [composable fields](https://github.com/PoP-PoPAPI/api#composable-fields) and [composable directives](https://github.com/PoP-PoPAPI/api#composable-directives). --\u003e\n\n## Support for REST\n\nBy installing the [REST package](https://github.com/PoP-PoPAPI/api-rest), the GraphQL server can also satisfy REST endpoints, from a single source of truth.\n\n\u003c!-- Check out these example links:\n\n- [List of posts](https://newapi.getpop.org/posts/api/rest/)\n- [Single post](https://newapi.getpop.org/posts/cope-with-wordpress-post-demo-containing-plenty-of-blocks/api/rest/) --\u003e\n\n## Demo\n\nThe GraphQL API (running on top of [a WordPress site](https://newapi.getpop.org)) is deployed under this endpoint: https://newapi.getpop.org/api/graphql/\n\nYou can play with it through the following clients:\n\n- GraphiQL: https://newapi.getpop.org/graphiql/\n- GraphQL Voyager: https://newapi.getpop.org/graphql-interactive/\n\n## PHP versions\n\nRequirements:\n\n- PHP 8.1+ for development\n- PHP 7.4+ for production\n\n### Supported PHP features\n\nCheck the list of [Supported PHP features in `GatoGraphQL/GatoGraphQL`](https://github.com/GatoGraphQL/GatoGraphQL/blob/master/docs/supported-php-features.md)\n\n### Preview downgrade to PHP 7.4\n\nVia [Rector](https://github.com/rectorphp/rector) (dry-run mode):\n\n```bash\ncomposer preview-code-downgrade\n```\n\n## Standards\n\n[PSR-1](https://www.php-fig.org/psr/psr-1), [PSR-4](https://www.php-fig.org/psr/psr-4) and [PSR-12](https://www.php-fig.org/psr/psr-12).\n\nTo check the coding standards via [PHP CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer), run:\n\n``` bash\ncomposer check-style\n```\n\nTo automatically fix issues, run:\n\n``` bash\ncomposer fix-style\n```\n\n## Change log\n\nPlease see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.\n\n## Testing\n\nTo execute [PHPUnit](https://phpunit.de/), run:\n\n``` bash\ncomposer test\n```\n\n## Static Analysis\n\nTo execute [PHPStan](https://github.com/phpstan/phpstan), run:\n\n``` bash\ncomposer analyse\n```\n\n## Report issues\n\nTo report a bug or request a new feature please do it on the [GatoGraphQL monorepo issue tracker](https://github.com/GatoGraphQL/GatoGraphQL/issues).\n\n## Contributing\n\nWe welcome contributions for this package on the [GatoGraphQL monorepo](https://github.com/GatoGraphQL/GatoGraphQL) (where the source code for this package is hosted).\n\nPlease see [CONTRIBUTING](CONTRIBUTING.md) and [CODE_OF_CONDUCT](CODE_OF_CONDUCT.md) for details.\n\n## Security\n\nIf you discover any security related issues, please email leo@getpop.org instead of using the issue tracker.\n\n## Credits\n\n- [Leonardo Losoviz][link-author]\n- [All Contributors][link-contributors]\n\n## License\n\nGNU General Public License v2 (or later). Please see [License File](LICENSE.md) for more information.\n\n[ico-version]: https://img.shields.io/packagist/v/graphql-by-pop/graphql-server.svg?style=flat-square\n[ico-license]: https://img.shields.io/badge/license-GPLv2-brightgreen.svg?style=flat-square\n[ico-travis]: https://img.shields.io/travis/graphql-by-pop/graphql-server/master.svg?style=flat-square\n[ico-scrutinizer]: https://img.shields.io/scrutinizer/coverage/g/graphql-by-pop/graphql-server.svg?style=flat-square\n[ico-code-quality]: https://img.shields.io/scrutinizer/g/graphql-by-pop/graphql-server.svg?style=flat-square\n[ico-downloads]: https://img.shields.io/packagist/dt/graphql-by-pop/graphql-server.svg?style=flat-square\n\n[link-packagist]: https://packagist.org/packages/graphql-by-pop/graphql-server\n[link-travis]: https://travis-ci.org/graphql-by-pop/graphql-server\n[link-scrutinizer]: https://scrutinizer-ci.com/g/graphql-by-pop/graphql-server/code-structure\n[link-code-quality]: https://scrutinizer-ci.com/g/graphql-by-pop/graphql-server\n[link-downloads]: https://packagist.org/packages/graphql-by-pop/graphql-server\n[link-author]: https://github.com/leoloso\n[link-contributors]: ../../../../../../contributors\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgraphqlbypop%2Fgraphql-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgraphqlbypop%2Fgraphql-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgraphqlbypop%2Fgraphql-server/lists"}