GraphQL 用于 API 的查询语言 项目简介
GraphQL 既是一种由 Facebook 提出的用于 API 的查询语言,也是一个满足你数据查询的运行时。 GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,而且没有任何冗余,也让 API 更容易地随着时间推移而演进,还能用于构建强大的开发者工具。使用 GraphQL,你可以基于图模式定义你的后端。然后客户端就可以请求所需要的数据集。因此,你不必因为客户端数据需求的变更而改变你的后端。这解决了管理 REST API 中的最大的问题。GraphQL 同样能够让客户端程序高效地批量获取数据。例如,看一看下面这个 GraphQL 请求:{
latestPost {
_id,
title,
content,
author {
name
},
comments {
content,
author {
name
}
}
}
}这个 GraphQL 请求获取了一篇博客文章和对应评论与作者信息的数据。下面是请求的返回结果:{
"data": {
"latestPost": {
"_id": "03390abb5570ce03ae524397d215713b",
"title": "New Feature: Tracking Error Status with Kadira",
"content": "Here is a common feedback we received from our users ...",
"author": {
"name": "Pahan Sarathchandra"
},
"comments": [
{
"content": "This is a very good blog post",
"author": {
"name": "Arunoda Susiripala"
}
},
{
"content": "Keep up the good work",
"author": {
"name": "Kasun Indi"
}
}
]
}
}
}如果你使用的是 REST 的话,你需要调用多个 REST API 的请求才能获取这些信息。GraphQL 是一个规范因此,它可以用于任何平台或语言。它有一个参考的实现 JavaScript,由 Facebook 维护。还有许多社区维护的实现有许多种语言。介绍内容来自 简书。GraphQL 中文站点:http://graphql.cn/
latestPost {
_id,
title,
content,
author {
name
},
comments {
content,
author {
name
}
}
}
}这个 GraphQL 请求获取了一篇博客文章和对应评论与作者信息的数据。下面是请求的返回结果:{
"data": {
"latestPost": {
"_id": "03390abb5570ce03ae524397d215713b",
"title": "New Feature: Tracking Error Status with Kadira",
"content": "Here is a common feedback we received from our users ...",
"author": {
"name": "Pahan Sarathchandra"
},
"comments": [
{
"content": "This is a very good blog post",
"author": {
"name": "Arunoda Susiripala"
}
},
{
"content": "Keep up the good work",
"author": {
"name": "Kasun Indi"
}
}
]
}
}
}如果你使用的是 REST 的话,你需要调用多个 REST API 的请求才能获取这些信息。GraphQL 是一个规范因此,它可以用于任何平台或语言。它有一个参考的实现 JavaScript,由 Facebook 维护。还有许多社区维护的实现有许多种语言。介绍内容来自 简书。GraphQL 中文站点:http://graphql.cn/