waaseyaa / graphql
GraphQL endpoint + schema introspection for Waaseyaa — optional/experimental L6 surface; see README for the primary JSON:API framing.
Requires
- php: >=8.5
- waaseyaa/access: ^0.1.0-alpha.218
- waaseyaa/api: ^0.1.0-alpha.218
- waaseyaa/entity: ^0.1.0-alpha.218
- waaseyaa/field: ^0.1.0-alpha.218
- waaseyaa/foundation: ^0.1.0-alpha.218
- waaseyaa/routing: ^0.1.0-alpha.218
- webonyx/graphql-php: ^15.31.5
Requires (Dev)
- phpunit/phpunit: ^10.5
This package is auto-updated.
Last update: 2026-06-16 02:03:05 UTC
README
Alternative protocol — not the primary API surface.
Per the framework's API-surface consolidation (mission
api-surface-consolidation-jsonapi-primary-01KSEFTV), the framework's primary API surface is JSON:API inpackages/api/.waaseyaa/graphqlremains supported as an optional / experimental L6 protocol adapter for distributions whose consumers need GraphQL. It is not bundled bywaaseyaa/full; install it explicitly when your distribution chooses GraphQL.
Layer 6 — Interfaces
GraphQL endpoint for Waaseyaa with auto-generated schema from registered entity types.
GraphQlEndpoint accepts queries at the configured route (registered via GraphQlRouteProvider) and resolves them against EntityTypeManagerInterface-derived schemas. Connection-style pagination follows the Relay spec: totalCount reflects the full unfiltered dataset (matching JSON:API semantics — see #436), while items returns only the access-filtered subset. Field resolvers honour FieldAccessPolicyInterface so attribute-level access control matches the JSON:API surface.
Key classes: GraphQlEndpoint, GraphQlRouteProvider, GraphQlServiceProvider.
Status
- Stability: optional / experimental. The public API surface (
GraphQlServiceProvider, the/graphqlendpoint, the schema-loading mechanism, any documented resolvers / mutations) is frozen at its current shape. The framework cadence ships no new feature work for this package; community contributions are accepted under the same review bar. - Bundle membership: suggested by
waaseyaa/full(not required). To install:composer require waaseyaa/graphql. - Decision provenance: API-surface consolidation by mission
api-surface-consolidation-jsonapi-primary-01KSEFTV. JSON:API is declared the framework's primary API surface indocs/specs/jsonapi.md.
Implementation gotchas
- Reference fields keep storage field names: A field defined as
author_idwith typeentity_referenceproduces a GraphQL field namedauthor_id(notauthor). It resolves to the nested entity object but the field name includes the_idsuffix.