学习GraphQL的入门方式!只需要了解概述即可!

首先

本次我们将介绍GraphQL的概要!

    • GraphQLが出てくるまでに、どのようなデータ通信があったのか?

 

    • RESTの問題点は何か?

 

    • GraphQLでできること

 

    GraphQLの始め方

我会对其进行解释!

GraphQL

数据通信的历史

作为最早出现的数据通信协议之一,存在一种称为RPC的协议。
这是远程过程调用的缩写,它允许客户端调用服务器端的方法。
近年来,谷歌发明的符合HTTP/2标准的gRPC也开始出现。

接下来出场的是由微软提出的SOAP。
这是通过使用XML进行数据通信的方法。
在SAML认证中也使用了它。
需要创建如下所示的XML文件。
稍微有点难以阅读。

<?xml version="1.0"?>
<PurchaseOrder PurchaseOrderNumber="99503" OrderDate="1999-10-20">
  <Address Type="Shipping">
    <Name>Ellen Adams</Name>
    <Street>123 Maple Street</Street>
    <City>Mill Valley</City>
    <State>CA</State>
    <Zip>10999</Zip>
    <Country>USA</Country>
  </Address>
  <Address Type="Billing">
    <Name>Tai Yee</Name>
    <Street>8 Oak Avenue</Street>
    <City>Old Town</City>
    <State>PA</State>
    <Zip>95819</Zip>
    <Country>USA</Country>
  </Address>
  <DeliveryNotes>Please leave packages in shed by driveway.</DeliveryNotes>
  <Items>
    <Item PartNumber="872-AA">
      <ProductName>Lawnmower</ProductName>
      <Quantity>1</Quantity>
      <USPrice>148.95</USPrice>
      <Comment>Confirm this is electric</Comment>
    </Item>
  </Items>
</PurchaseOrder>

REST是一种比SOAP更简单的数据通信协议。
REST使用HTTP方法(GET、POST、PUT、PATCH、DELETE)在资源的URL上返回响应以进行使用。
它易于在后端进行控制,并且非常简单易于引入!

REST的缺点

尽管REST具有简洁易用的特点,但由于响应是固定的,会出现以下问题。

由于响应是固定的…
– 如果想要将多个数据组合使用,使用一个API很困难。
– 如果要使用的信息很少,需要在前端进行过滤。

GraphQL是为了解决上述问题而由Facebook开发的。它是一种以前端主体发起查询请求的数据通信方式。同时,它还通过定义API的规范作为模式来进行开发。

GraphQL 可以做的事情

GraphQL提供了以下功能,为了能够让你即使仅仅通过氛围也能掌握,我也写了一些代码。

    • クエリ

 

    • ミューテーション

 

    サブスクリプション

请用中文解释该问题

查询就像SQL语句一样,你可以写下你想要的数据。

query {
  # 欲しいデータのモデル名を書く
  person(personId: 1) {
    # 実際に取得したいデータを書く
    name
    age
    address
    # リレーションを設定している場合、紐づいている先のデータも取れます!
    company {
      name
    }
  }
}

变异

用来进行值的修改。
可以与REST相同地使用。

mutation personMutation {
  update(name: "Namae!!!") {
    id
    name
  }
}

订阅

当客户端检测到数据变更时,会触发相应的操作。

subscription {
  nameChange {
    name
  }
}

GraphQL的入门

在GraphQL中也有专门的工具,就像在REST API中有Paw或Postman一样。
我认为GraphiQL或GraphQL Playground的任何一个都可以。
使用它们,您可以尝试发出查询语句。

另外,作为查询的服务器,可使用Star Wars API或GitHub API。如果只是查询语句,可以使用Star Wars API,如果想试试变异操作,可以尝试使用GitHub API!

如果您在尝试中对此产生了兴趣,并且希望亲自动手制作,那么请在Apollo项目或Relay项目中选择您想要使用的服务器,并动手制作吧!

总结

这次,我们简单介绍了GraphQL。

如果有任何想法或评论,请告诉我!同时,我也期待在Twitter和YouTube上收到您的评论!

bannerAds