[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映射模板概述
继续下去
我們接下來要使用架構來看實際的定義,但是我對這部分的語法和語義並沒有完全理解,所以我們下次再來談這個。
就像服务器端的规则“模式”和实际请求的格式相似,整理这两者的区别可能会更容易理解。
以上。