Graphql 初尝试1 --简介
Graphql是个什么鬼
自行 百度 维基 google,或参考羊羊提供的链接。
它其实是一种新的设计api的思维,和rest相比,不用构造多个api,一个api可以解决所有请求。
GraphQL is a new way to think about building and querying APIs. Rather than construct several REST requests to fetch data that you are interested in, you can often make a single call to fetch the information you need.
好处
我的想法很简单,不用建多个api,根据请求动态得到需要的资源。
以下为github采用graphql的原因,说白了就是灵活,前端集成更方便,后面加新的东西也更容易。
We are supporting GraphQL because it offers much more flexibility for our integrators. The example above would require at least two REST calls—one to fetch information about the user, and one to fetch information about the user's organizations.
The ability to define and specify precisely the data you want for your integration is a powerful advantage over the existing REST endpoints. As we move out of Early Access, we'll be providing more resources and fields that you can access via GraphQL.
坏处
大概去知乎和stackoverflow瞅了下,大概大家说的有这么些点:
需要引入一些依赖,如apollo之类的;
对有一些机制如cache会有影响,进而影响性能,maybe,如果要解决这些问题,会引入其他依赖;
据说发请求花的字节数比restful形式的会多些,具体怎么算的,暂时不知道;
后端需要更多处理来对参数进行解析验证;
学新的技术(这个没问题,但如果项目人员变动比较大,可能会增大维护成本是真的);
怎么用,需要依赖吗?
单纯从项目经验出发,我们采用的是前端react,后端node。
前端引入了 apollo-client,后端引入了graphql-tools,其实依赖并没有很多有木有,具体怎么用,详细的demo之后聊。这里其实想说,没有想的复杂。