mirror of
https://github.com/kou029w/intro-to-graphql.git
synced 2025-01-18 16:08:03 +00:00
シーケンス図追加
This commit is contained in:
parent
96be65027d
commit
a4a7fa927c
1 changed files with 14 additions and 18 deletions
32
README.md
32
README.md
|
@ -38,7 +38,7 @@ https://graphql.org
|
||||||
|
|
||||||
### GraphQL とは API の問い合わせ言語
|
### GraphQL とは API の問い合わせ言語
|
||||||
|
|
||||||
サーバーへの問い合わせ (GraphQL Query)
|
クライアントからサーバーへの問い合わせ (GraphQL Query)
|
||||||
|
|
||||||
```graphql
|
```graphql
|
||||||
query {
|
query {
|
||||||
|
@ -48,7 +48,7 @@ query {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
サーバーからの応答 (JSON)
|
サーバーからクライアントへの応答 (JSON)
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
|
@ -70,29 +70,31 @@ https://graphql-pokemon2.vercel.app
|
||||||
- 2015 年 オープンソース化
|
- 2015 年 オープンソース化
|
||||||
- 2019 年 [GraphQL Foundation](https://graphql.org/foundation/)に移管
|
- 2019 年 [GraphQL Foundation](https://graphql.org/foundation/)に移管
|
||||||
|
|
||||||
オープンソースな仕様になっており、自由に[貢献できる](https://github.com/graphql/graphql-spec/blob/main/CONTRIBUTING.md)
|
Facebook が GraphQL を開発した理由は、[モバイルネイティブアプリ対応のため](https://reactjs.org/blog/2015/05/01/graphql-introduction.html)
|
||||||
|
スマホの普及に伴う低速、省電力なデバイスの利用の増加が背景
|
||||||
|
|
||||||
|
現在はオープンソースな仕様になっており、自由に[貢献できる](https://github.com/graphql/graphql-spec/blob/main/CONTRIBUTING.md)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### 仕様
|
### 仕様
|
||||||
|
|
||||||
サーバーとクライアントの間のやり取りに使われる言語仕様
|
|
||||||
https://spec.graphql.org
|
https://spec.graphql.org
|
||||||
|
|
||||||
#### 問い合わせ言語 - GraphQL Query
|
#### 問い合わせ言語 - GraphQL Query
|
||||||
|
|
||||||
クライアントがサーバーに JSON のデータを問い合わせるための言語
|
![bg right:33% fit](https://ptuml.hackmd.io/svg/SoWkIImgAStDKIXEBInDpKjEvIhEpimhI2nAp5N8pS_BJyueoizDLIWfAatbUjoq_d7poiTDInutBNhSlFbnSuU2hft2uwQjZvltF6wU02GLh1JSYn8BCW9z509BKuigiMcnqKNNuXNixmSKM_MuUThZfXsFcvQ3TNLmEQJcfG2TnWK0)
|
||||||
|
|
||||||
|
クライアントからサーバーに問い合わせるための言語
|
||||||
https://graphql.org/learn/queries/
|
https://graphql.org/learn/queries/
|
||||||
|
|
||||||
身近な問い合わせ言語の例: SQL
|
GraphQL 以外の身近な問い合わせ言語の例: SQL
|
||||||
|
|
||||||
#### スキーマ言語 - GraphQL Schema
|
#### スキーマ言語 - GraphQL Schema
|
||||||
|
|
||||||
データ構造と操作を宣言するための言語
|
データ構造と操作を宣言するための言語
|
||||||
https://graphql.org/learn/schema/
|
https://graphql.org/learn/schema/
|
||||||
|
|
||||||
身近なスキーマ言語の例: [JSON Schema](https://json-schema.org/), [XML Schema](http://www.w3.org/TR/xmlschema11-1/)
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### 何でないか
|
### 何でないか
|
||||||
|
@ -114,12 +116,6 @@ https://graphql.org/learn/schema/
|
||||||
|
|
||||||
GraphQL は単一のリクエストで指定したデータを取得できる
|
GraphQL は単一のリクエストで指定したデータを取得できる
|
||||||
|
|
||||||
- クライアントのデータ取得の効率化
|
|
||||||
- エンドポイントの管理の容易さ
|
|
||||||
|
|
||||||
Facebook が GraphQL を開発した理由は、[モバイルネイティブアプリ対応のため](https://reactjs.org/blog/2015/05/01/graphql-introduction.html)
|
|
||||||
スマホの普及に伴う低速、省電力なデバイスの利用の増加が背景
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
#### REST
|
#### REST
|
||||||
|
@ -136,7 +132,7 @@ https://hasura.io/learn/graphql/intro-graphql/graphql-vs-rest/
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
#### REST vs GraphQL
|
#### GraphQL の特徴
|
||||||
|
|
||||||
| 特徴 | REST | GraphQL |
|
| 特徴 | REST | GraphQL |
|
||||||
| ---------------------------- | :--: | :-----: |
|
| ---------------------------- | :--: | :-----: |
|
||||||
|
@ -145,8 +141,8 @@ https://hasura.io/learn/graphql/intro-graphql/graphql-vs-rest/
|
||||||
| エンドポイントの管理の容易さ | ❌ | ✅ |
|
| エンドポイントの管理の容易さ | ❌ | ✅ |
|
||||||
| エンドポイントの実装の単純さ | ✅ | ❌ |
|
| エンドポイントの実装の単純さ | ✅ | ❌ |
|
||||||
|
|
||||||
GraphQL は複数のリソースを単一の HTTP POST (Query のみなら GET) リクエストで取得できる
|
単一の HTTP POST (読み取りのみなら GET) リクエストで複数リソースを操作できる
|
||||||
その代わり、エンドポイントの実装は REST と比較して複雑になりやすい
|
その代わり、エンドポイントの実装は REST での実装より複雑な傾向がある
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -301,7 +297,7 @@ https://hasura.io
|
||||||
|
|
||||||
GraphQL の基礎知識
|
GraphQL の基礎知識
|
||||||
|
|
||||||
- GraphQL とは API の問い合わせ言語仕様
|
- GraphQL とは API の問い合わせ言語
|
||||||
- 特徴
|
- 特徴
|
||||||
- 単一リクエスト
|
- 単一リクエスト
|
||||||
- 型システム
|
- 型システム
|
||||||
|
|
Loading…
Add table
Reference in a new issue