GraphQL 是什么?
一款 API 查询语言,它不捆绑任何类型的数据库,它的作用就是返回你定义类型的数据。
就像这样:
预先定义好你想要获取的数据类型
{
user {
id,
name
}
}
随后查询 API,获取符合数据类型的字段
{
"user": {
"id": "123123",
"name": "graphql_test"
}
}
为什么需要 GraphQL?
简单来说,可能 user 类型有很多很多字段,除了 id,name 还有 address、email、tel...等等。但是某个情况下我们只需要 id 和 name。而某个情况下我们又需要 email、tel 等其他信息。使用传统的 restful API 风格进行查询的情况下,可能后端又要针对新的查询情况去开辟新的后端接口,而前端也要增加新的对应的请求地址。如果使用 GraqhQL 的话,我们只需要定义好数据类型,获取我们想要的字段即可了。
一些其他的考虑
GraphQL 目前的生态还是比较小众,生态比较好的库就是 Apollo,它有对应前端的 apollo-client 和 node 端的 apollo-sever-express。其他语言都是社区里的开发者用爱发电。所以已有的项目迁移成本可能需要考虑对应语言的生态,可能会比较费力。如果是 node + react 这种项目还可以考虑一下尝尝鲜。
网友评论