#101系列# Graphql 初尝试1 --简介

逻辑流星
• 阅读 3558

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之后聊。这里其实想说,没有想的复杂。

参考链接

点赞
收藏
评论区
推荐文章
Easter79 Easter79
3年前
stardog graphql 简单操作
预备环境:下载stardog软件包graphql查询地址创建一个简单数据库./stardogadmindbcreatenstarwarsgraphql查询方式http地址:http://localhost:5820/starwars/graphql
九鹤 九鹤
4年前
GraphQL
GraphQL一种api文档查询语言基本语法本地运行javagitclonehttps://github.com/apollographql/starwarsservercdstarwarsservernpminstallnpmstart执行上面的命令之后打开下面的地址即可学习http://localhost:8080/grap
亚瑟 亚瑟
4年前
Spring Boot API 服务开发指南
SpringBoot大大简化了使用Spring框架开发Web应用时的配置工作,使用它只需添加相关依赖包,即可通过零配置或少量配置来运行一个Web应用。本文将使用SpringBoot来开发一个API服务,同时支持REST和GraphQL两种协议。内容包括使用Querydsl来替换JPQL以便以类型安全的方式动态构建S
Stella981 Stella981
3年前
API设计风格(RRC、REST、GraphQL、服务端驱动)
API设计风格(RRC、REST、GraphQL、服务端驱动)(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.cnblogs.com%2Flovecindywang%2Fp%2F10383756.html)
Stella981 Stella981
3年前
GraphQL 使用介绍
!(https://oscimg.oschina.net/oscnet/9d854df9aa4e01f403bbb6ae4c9da2afbdf.jpg)GraphQL是Fackbook的一个开源项目,它定义了一种查询语言,用于描述客户端与服务端交互时的数据模型和功能,相比RESTfulAPI主要有以下特点:根据需要返回数据
API 小达人 API 小达人
2年前
如何开发 RESTful、GraphQL 和 SOAP 等不同类型的 API ?
本指南将详尽探讨API开发的基本要素,包括涉及的概念、类型和协议,以及可用的最佳实践和工具。我们将从揭示API在现代软件开发中的作用开始,阐明它们如何促进不同软件组件之间的无缝通信。之后,我们将深入研究各种API类型,如RESTful、GraphQL和SOAP,并分析它们独特的特点和理想用例。接下来将讨论API设计的关键方面,重点关注API安全性、可扩展性和可维护性。我们将讨论常见的身份验证和授权机制、速率限制以及API版本控制等其他基本主题。最后,我们将介绍领先的API开发工具和框架以及文档和测试的价值,确保你具备开发高质量、高效且安全API所需的知识和资源。
林十二 林十二
2年前
vscode GraphQL插件踩坑
TLDRvscode的GraphQL语法插件,目前比较推荐GraphqlFoundation的GraphQL:LanguageFeatureSupport相关配置,见配置文件的语法规则,参考背景之前用的GraphQL插件,只开启了语法高亮.自己写的sche
liam liam
1年前
GraphQL 查询入门指南:简单易懂
GraphQL是一种API查询语言和运行时,用于使用现有数据完成这些查询。它为您的API中的数据提供了完整且易于理解的描述,让客户能够准确地询问他们需要什么,更容易随着时间的推移发展,并启用强大的开发人员工具。GraphQLQueryGraphQL的查询是
陈杨 陈杨
5个月前
使用HarmonyOS NEXT实现签名板的功能
简介大家好,我是一只会打代码的羊。今天来分享一篇之前使用ArkTSAPI9版本实现的签名板功能,目前鸿蒙已经推出API12了,对比API9的时候,现在实现一个功能太简单了。这期主要讲一下之前实现功能有多难受,以及如何实现。,现在这套代码也是可以直接迁移到A