百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 文章教程 > 正文

GraphQL介绍_graphql-go

yund56 2025-09-12 05:29 11 浏览

肖恩·拉弗兰(Sean LaFlam)

5分钟阅读

并构建更好的API

什么是GraphQL?

GraphQL是Facebook开发的一种查询语言(这是QL的代表),为我们提供了一种更有效的设计,创建和访问API的方式。

它旨在通过允许您配置发出请求时要求的数据的结构和内容,来改进常规的API请求过程。

通用模式是:

  • 描述您的数据
  • 询问你想要什么
  • 取得可预测的结果

在GraphQL之前

在GraphQL之前,标准是构建REST API,所有这些API都遵循严格的准则来提出API请求。该系统的问题在于,它为您提供了需要向其发出请求的许多不同的端点。

您是否想要某个电影API中所有电影的索引?那个端点看起来可能像这样:

https://www.moviesapi.com/movies

是否想要获取特定演员的电影列表?现在将是一个不同的端点,如下所示:

https://www.moviesapi.com/actors/7/movies

如您所见,使用RESTful约定要求您将处理许多不同端点的能力写入代码中。

它也有缺点,有时要么发送太多信息,要么发送不够。有时,由API发送回的JSON对象可以在每个键中包含许多嵌套对象。例如,在上面的API讨论中,对’/ movies’的GET请求可能会返回大量的电影列表,并且在每个电影对象中可能会有一个按键调用actor,该actor包含电影中的每个演员,并且在该演员键内,每个演员可能都有一些属性,例如个人简介,DOB,奖项列表等。如果您只是在寻找以字母B开头的电影名称列表,那将浪费大量不必要的信息。实例。

相反,也许您想要所有这些信息,但是一般的请求都不会将其发送到“ / movies”,因此您现在必须向不同的端点发出多个请求,以获取所需的所有信息,并弄清楚如何在您的前端很好地合并这些数据。

我要说的是设计这些API的常规方法可能有很多不足之处,而且无论您是谁来开发它的,您几乎都是摆布,并且必须弄清楚如何使用所获得的一切。

入门

首先,请转到GraphQL网站并阅读编程语言的文档。它们几乎支持您要使用的任何语言(JavaScript,Python,Ruby,Swift,Go,Java,C / C ++,Perl等),因此您应该能够使其适用于所构建的任何应用程序。

我个人就是一个JavaScript程序员,所以我们今天将使用这个例子,但总体信息不应该从语言到语言的大量变化。

开始之前要了解的一件事是GraphQL只是一个规范。即使它是由Facebook构建的,也不意味着您要在计算机上安装Facebook产品或由其构建的应用程序才能使用GraphQL。因此,如果您因Facebook的声誉而犹豫不决地使用Facebook建造的产品,我认为没有任何理由值得关注。

如果您单击JavaScript文档,则会看到将其分为3个部分:服务器,客户端和工具。

服务器

您会看到这里有许多选项可用于设置服务器以处理GraphQL服务器环境,其中许多选项都可以通过简单的npm安装来安装。您将必须通读每个文档,以确定最适合您的用例的。但是GraphQL.js和Apollo Server是两个最常见且可能因此易于使用(由于大量的教程和进一步的文档)。

GraphQL服务器接受您的API,并允许您通过类型定义和称为解析器的这些函数来构造其形状,这些函数定义了如何处理每个查询以及应返回的查询。


客户端

如果您碰巧正在使用已经设置为可以处理GraphQL的API /服务器,那么除了此简介的客户端之外,您不需要任何其他操作。客户端是前端组件,您可以在其中实际接受查询,然后在后端请求数据。


有关每种语言的GraphQL客户端部分的每个语言都有更详细的文档,但它们再次使用NPM Install轻松安装,并且记录得很好。

让我们看一个例子

好的,到目前为止,所有内容都还很模糊,只是使您对GraphQL有更高的了解。现在让我们看一个实际查询和响应的示例。回到我们的电影数据库示例,一个简单的查询可能看起来像这样:

{
  movie(id: "157") {
    name
    director
    year
  }
}

基本上是说,去找ID为157的电影,然后告诉我导演和上映年份。

作为回应,我们将收到以下内容:

{
  "data": {
    "movie": {
      "name": "Shrek",
      "director": "Andrew Adamson"
      "year": "2001"    
    }
  }
}

我们将完全返回我们从API要求的内容。不多不少。我们并没有获得电影中每个演员的列表,也不必向多个端点提出多个请求。

让我们更进一步。根据后端服务器的设置方式,您可以执行以下操作:

{
  movie(id: "157") {
    name
    year
    director {
      movies
    }
  }
}

然后,您将获得导演完成的电影列表:

{
  "data": {
    "movie": {
      "name": "Shrek",
      "director": "Andrew Adamson" {
         "movies": [
            "name": "Shrek 2", 
            "name": "Shrek the Third",
            "name": "Shrek 4ever After",
          ]}
      "year": "2001"    
    }
  }
}

如您所见,它是非常可定制的,您可以找回要查找的确切数据结构,而不必尝试进行一系列不同的调用并通过混杂的JSON对象进行排序以找到所需的内容。

有关更多信息,请务必阅读官方文档并尝试实现您自己的GraphQL API!

(本文由闻数起舞翻译自37 Followers的文章《An Introduction to GraphQL》,转载请注明出处,原文链接:
https://laflamablanc.medium.com/an-introduction-to-graphql-5a9714a5cced)

相关推荐

SM小分队Girls on Top,女神战队少了f(x)?

这次由SM娱乐公司在冬季即将开演的smtown里,将公司的所有女团成员集结成了一个小分队project。第一位这是全面ACE的大姐成员权宝儿(BoA),出道二十年,在日本单人销量过千万,韩国国内200...

韩国女团 aespa 首场 VR 演唱会或暗示 Quest 3 将于 10 月推出

AmazeVR宣布将在十月份举办一场现场VR音乐会,观众将佩戴MetaQuest3进行体验。韩国女团aespa于2020年11月出道,此后在日本推出了三张金唱片,在韩国推出了...

韩网热议!女团aespa成员Giselle在长腿爱豆中真的是legend

身高163的Giselle,长腿傲人,身材比例绝了...

假唱而被骂爆的女团:IVE、NewJeans、aespa上榜

在韩国,其实K-pop偶像并不被认为是真正的歌手,因为偶像们必须兼备舞蹈能力、也经常透过对嘴来完成舞台。由于科技的日渐发达,也有许多网友会利用消音软体来验证K-pop偶像到底有没有开麦唱歌,导致假唱这...

新女团Aespa登时尚大片 四个少女四种style

来源:环球网

韩国女团aespa新歌MV曝光 画面梦幻造型超美

12月20日,韩国女团aespa翻唱曲《DreamsComeTrue》MV公开,视频中,她们的造型超美!WINTER背后长出一双梦幻般的翅膀。柳智敏笑容甜美。宁艺卓皮肤白皙。GISELLE五官精致...

女网友向拳头维权,自称是萨勒芬妮的原型?某韩国女团抄袭KDA

女英雄萨勒芬妮(Seraphine)是拳头在2020年推出的第五位新英雄,在还没有正式上线时就备受lsp玩家的关注,因为她实在是太可爱了。和其他新英雄不同的是,萨勒芬妮在没上线时就被拳头当成虚拟偶像来...

人气TOP女团是?INS粉丝数见分晓;TWICE成员为何在演唱会落泪?

现在的人气TOP女团是?INS粉丝数见分晓!现在爱豆和粉丝之间的交流方法变得多种多样,但是Instagram依然是主要的交流手段。很多粉丝根据粉丝数评价偶像的人气,拥有数百、数千万粉丝的组合作为全球偶...

韩国女团MVaespa Drama MV_韩国女团穿超短裙子跳舞

WelcometoDrama.Pleasefollow4ruleswhilewatchingtheDrama.·1)Lookbackimmediatelywhenyoufe...

aespa师妹团今年将出道! SM职员亲口曝「新女团风格、人数」

记者刘宛欣/综合报导南韩造星工厂SM娱乐曾打造出东方神起、SUPERJUNIOR、少女时代、SHINee、EXO等传奇团体,近年推出的aespa、RIIZE更是双双成为新生代一线团体,深受大众与粉丝...

南韩最活跃的女团aespa,新专辑《Girls》即将发布,盘点昔日经典

女团aespa歌曲盘点,新专辑《Girls》即将发布,期待大火。明天也就是2022年的7月8号,aespa新专辑《Girls》即将发行。这是继首张专辑《Savage》之后,时隔19个月的第二张专辑,这...

章泽天女团aespa出席戛纳晚宴 宋康昊携新片亮相

搜狐娱乐讯(山今/文玄反影/图科明/视频)法国时间5月23日晚,女团aespa、宋康昊、章泽天等明星亮相戛纳晚宴。章泽天身姿优越。章泽天肩颈线优越。章泽天双臂纤细。章泽天仪态端正。女团aespa亮...

Aespa舞台暴露身高比例,宁艺卓脸大,柳智敏有“TOP”相

作为SM公司最新女团aespa,初舞台《BlackMamba》公开,在初舞台里,看得出来SM公司是下了大功夫的,虽然之前SM公司新出的女团都有很长的先导片,但是aespa显然是有“特殊待遇”。运用了...

AESPA女团成员柳智敏karina大美女

真队内速度最快最火达成队内首个且唯一两百万点赞五代男女团中输断层第一(图转自微博)...

对来学校演出的女团成员语言性骚扰?韩国这所男高的学生恶心透了

哕了……本月4日,景福男子高中相关人士称已经找到了在SNS中上传对aespa成员进行性骚扰文章的学生,并开始着手调查。2日,SM娱乐创始人李秀满的母校——景福高中迎来了建校101周年庆典活动。当天,S...