Dialects adapt query generation and response parsing to a specific GraphQL API flavour.
| Dialect | Class | Use case |
|---|---|---|
| Default | DefaultDialect |
Standard GraphQL APIs |
| Data API Builder | DataApiBuilderDialect |
Microsoft Data API Builder |
graphql_orm:
dialect: GraphqlOrm\Dialect\DataApiBuilderDialectThe DataApiBuilderDialect wraps results in an items envelope and supports cursor-based pagination with hasNextPage
and endCursor:
query {
tasks(first: 10) {
items {
id
title
}
hasNextPage
endCursor
}
}Nested collections are also wrapped automatically:
query {
users {
items {
id
tasks {
items {
id
}
}
}
}
}Implement GraphqlQueryDialect to support any API:
use GraphqlOrm\Dialect\GraphqlQueryDialect;
final class MyDialect implements GraphqlQueryDialect
{
public function extractCollection(array $data): array { ... }
public function createWalker(): GraphqlWalkerInterface { ... }
public function applyQueryOptions(array $arguments, QueryOptions $options): array { ... }
public function applyFilter(?FilterExpressionInterface $filter): array { ... }
}