REST と GraphQL のこころ

タグ

スライド概要

設計原則をフィーリングでまとめました

profile-image

Fuuki Shigenaka

@fuuki

作者について:

エンジニアです

スライド一覧
シェア
埋め込む»CMSなどでJSが使えない場合

公開日

2022-06-23 19:12:00

各ページのテキスト

1. 2022年6月23日 Web API LT会 - vol.4 REST と GraphQL の こころ 重中風奎(Shigenaka Fuuki) Twitter: @fuukidev エンジニアです ● サーバーサイドを主に書いてます ● 趣味で React なども書いてます ● いま一番触ってるのは gRPC です

2. 僕が知っていること ● REST ○ ○ ● CRUD 操作をリソース単位で行う URI とメソッドの組み合わせで操作する GraphQL ○ ○ グラフを表現したようなクエリが書ける CRUD だと複数回取得して JOIN するような取得も一度にできる なんとなく使い方とかは分かるが こころ がよくわからない

3. REST ● もととなった論文を参考にしました ○ ○ ● Roy Thomas Fielding, Architectural Styles and the Design of Network-based Software Architectures (2000) https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm 設計原則 ○ ○ ○ ○ ○ クライアントとサーバーに分ける ステートレス キャッシュ リソースは識別子を持つ etc…

4. リソースID、操作、リソース自体 リソースは 識別子を持つ E A B C D Client Server リソースの表現

5. こころ RESST の 粒立ち

6. GraphQL ● ● REST が設計原則であったのに対し、GraphQL はクエリ言語 GraphQL 仕様 ○ ○ https://spec.graphql.org/October2021/ 設計原則が書いてありました

7. GraphQL の設計原則 ● Product-centric: 製品中心 ○ ● Hierarchical: 階層 ○ ● ツールにより正しいことの保証を得られる Client-specified response: クライアントが指定するレスポンス ○ ● ビューの階層と構造を一致させる Strong-typing: 強力な型付け ○ ● フロントエンドエンジニアのための要件、言語、ランタイム クライアントが要求するものだけを、指定した形で返す Introspective: 内省的 ○ GraphQL 自身で型システムを照会できる 参考:GraphQL仕様 1.Overview (https://spec.graphql.org/October2021/) Copyright © 2015-2018, Facebook, Inc. 2019-present, GraphQL contributors

8. こころ GraphQL の Front engineer Love

9. まとめ ● ● REST と GraphQL の こころ (設計原則)を探ってみた 一段階上のレイヤーから API の設計ができるようになった気がします 重中風奎(Shigenaka Fuuki) Twitter: @fuukidev