以下是使用 PHP 和 GraphQL 构建 API 的一个示例:
use GraphQLTypeDefinitionType;
use GraphQLTypeDefinitionObjectType;
use GraphQLTypeDefinitionSchema;
$userType = new ObjectType([
"name" => "User",
"fields" => [
"id" => Type::nonNull(Type::string()),
"name" => Type::string(),
"email" => Type::string(),
],
]);
$queryType = new ObjectType([
"name" => "Query",
"fields" => [
"user" => [
"type" => $userType,
"args" => [
"id" => Type::nonNull(Type::string()),
],
"resolve" => function ($root, $args) {
// 从数据库中获取用户
$user = getUser($args["id"]);
// 返回用户数据
return $user;
},
],
],
]);
$schema = new Schema([
"query" => $queryType,
]);
这个示例创建了一个简单的 GraphQL API,它可以用于获取用户数据。
用 GraphQL 优雅地查询数据
GraphQL 的另一个优点是它允许客户端以声明性方式请求数据。这意味着客户端可以指定想要从 API 中获取的数据,而无需关心数据的结构。
以下是使用 PHP 和 GraphQL 查询数据的示例:
use GraphQLClient;
$client = new Client("http://localhost:8000/graphql");
$query = "{
user(id: "1") {
id
name
email
}
}";
$response = $client->query($query);
$user = $response->getData()["user"];
echo $user["name"];
这个示例使用 GraphQL 查询 API 来获取具有特定 ID 的用户的数据。
结语
PHP GraphQL 是一个强大的工具,它可以用于构建现代化的 API 并以声明性方式查询数据。它提供了强大的数据类型系统和强大的查询语言,非常适合构建复杂的 API。