[GraphQL][AWS AppSync] 简要解释概念 (1)

在这篇文章中,我写了关于学习GraphQL的教程,然后过了很长一段时间。通过学习AppSync的教程,我对它有了一些了解,所以我会写一篇文章来掌握概要。

我會把詳細解說留給「Qiita – GraphQLって何?」這篇文章,那裡有非常詳盡的說明。

请提供下列选项的参考译文。

– 参考一:请提供下列选项的参考译文。
– 参考二:请给出下列选项的参考翻译。
– 参考三:请提供下列选项的参考翻译文本。

    • GraphQL – Introduction

 

    • How to GraphQL

 

    • AWS Documents – チュートリアル AWS AppSync

 

    AWS Amplify – Get Started

GraphQL是什么

根据其运行环境和接口,以及上下文,这些术语可能具有不同的含义,以下是其中之一。

重要的是,“不需要关心数据存储的实现细节”。只是简单地说,“可以通过GraphQL这种方言来约定数据交互的接口。”

AWS AppSync是一个托管的GraphQL服务,它的意思是将数据存储实现得很好,包装在其他AWS服务中提供。可以说,AppSync的范围比GraphQL这个词本身的定义要广泛。

在GraphQL中,首先有接口,然后由基础设施建设人员负责处理底层数据存储。

必然的情况下,为了将接口和实现(数据存储层)进行映射,需要一些东西。在AppSync中,用来定义这种映射的元素被称为解析器(按其角色而命名)。

在AppSync中,使用DynamoDB是常见做法,但也可以使用Lambda函数。

GraphQL定义

作为接口,具备如下的要素。

    • データ形式の定義

 

    CRUDを担う「操作」の定義

对于这两个概念,你可以认为它们更接近于编程语言中的类、结构体和接口。它们都使用声明性的格式来描述。根据这个定义,我们处理数据。

将GraphQL运行时与实现相关联的东西

就像前面提到的那样,我们将使用解析器来进行定义。
以AppSync和DynamoDB为例,可以像这样。

GraphQL 「新しいUser型のデータを追加するためのCreateUserという操作を宣言する」
リゾルバ「CreateUserが呼ばれたら、DynamoDBのPutItemオペレーションに変換するための変換ルールを宣言する」

由於解析器涉及到數據存儲的實現,因此這與GraphQL本身相關性不大,而更與AppSync的規範有關。

用户在解析器上需要执行的是对”映射模板”进行定义。使用Apache Velocity模板语言(VTL)进行描述。实际执行与实际数据存储的操作是由AWS在后台自动完成的,因此用户只需使用模板来声明转换规则。

请点击此处了解详细信息 AWS – Resolver映射模板概述

继续下去

我們接下來要使用架構來看實際的定義,但是我對這部分的語法和語義並沒有完全理解,所以我們下次再來談這個。

就像服务器端的规则“模式”和实际请求的格式相似,整理这两者的区别可能会更容易理解。

以上。

bannerAds