PHP GraphQL 客户端使用教程
项目介绍
php-graphql-client
是一个用 PHP 编写的 GraphQL 客户端库,旨在通过提供简单的客户端和查询生成器类,简化与 GraphQL API 交互的过程。该项目的主要特点包括:
- Query 类:简单类,用于映射 GraphQL 查询,设计用于轻松快速地操作查询。
- QueryBuilder 类:构建器类,用于动态生成 Query 对象,适用于动态构建查询的场景。
- PHP GraphQL-OQM:此包的扩展,消除了编写任何 GraphQL 查询或参考 API 文档的需要,通过 GraphQL 的 introspection 生成查询对象。
项目快速启动
安装
首先,使用 Composer 安装 php-graphql-client
:
composer require gmostafa/php-graphql-client
基本使用
以下是一个简单的查询示例,用于检索所有公司及其名称和序列号:
use GraphQL\Query;
$gql = (new Query('companies'))
->setSelectionSet([
'name',
'serialNumber'
]);
// 假设 $client 是你的 GraphQL 客户端实例
$result = $client->runQuery($gql);
print_r($result->getData());
应用案例和最佳实践
动态查询构建
在某些情况下,你可能需要动态构建查询。以下是一个使用 QueryBuilder
类的示例:
use GraphQL\QueryBuilder\QueryBuilder;
$builder = new QueryBuilder('companies');
$builder->setSelectionSet([
'name',
'serialNumber'
]);
$gql = $builder->getQuery();
$result = $client->runQuery($gql);
print_r($result->getData());
使用别名
有时,你可能需要为查询设置别名,以便在同一查询中请求多个相同类型的对象:
use GraphQL\Query;
$gql = (new Query())
->setSelectionSet([
(new Query('companies', 'TechCo'))
->setArguments(['name' => 'Tech Co'])
->setSelectionSet([
'name',
'serialNumber'
]),
(new Query('companies', 'AnotherTechCo'))
->setArguments(['name' => 'A N Other Tech Co'])
->setSelectionSet([
'name',
'serialNumber'
])
]);
$result = $client->runQuery($gql);
print_r($result->getData());
典型生态项目
PHP GraphQL-OQM
PHP GraphQL-OQM
是 php-graphql-client
的一个扩展,它通过从 API 模式声明生成查询对象,消除了编写 GraphQL 查询的需要。你可以通过以下命令安装:
composer require gmostafa/php-graphql-oqm
使用示例
以下是一个使用 PHP GraphQL-OQM
的示例:
use GraphQL\OQM\ObjectQueryMapper;
$mapper = new ObjectQueryMapper($client);
$query = $mapper->query('companies')
->select('name')
->select('serialNumber');
$result = $client->runQuery($query);
print_r($result->getData());
通过这些示例和最佳实践,你可以更高效地使用 php-graphql-client
和相关生态项目来简化与 GraphQL API 的交互。