Web API系読み物
新規作成 2020-11-1
Webを支える技術
Webとは?
Webサイト
人間のインタフェースとしての
プログラムのインタフェースとしての(WebAPI)
URIはインターネット上のリソースを一意に識別するもの
HTTPはリソース操作のルール
HTTPヘッダー重要
以下各メソッドについて
以下、冪等性と安全性について(p101)
冪等:ある操作を何回行っても結果が同じこと
安全:操作対象のリソースの状態を変化させないこと
リソースの状態に変化を与えること=副作用
GET, HEAD 冪等かつ安全
PUT, DELETE 冪等だが安全でない
POST 冪等でも安全でもない
例えば
PUT, DELETEを同じリソースに何回発行しても、必ず同じ結果が得られる(冪等)。
GETを同じリソースに何回発行してもリソースの状態は変化しない(安全)。
POSTは発行する度にリソースを作り(安全でない)、同じ結果にならない(冪等でない)。
Web APIの設計(2020)
良さそう
途中
RESTだけがWeb APIを設計する方法ではないよ。
REST: リソース指向
リソース(パス)をアクション(HTTPメソッド)で操作
以下、RESTfulとは
クライアント/サーバーの分離
ステートレス性
キャッシュ可能性
階層化システム
コードオンデマンド
統一インタフェース
gRPC: 関数指向
1ミリ秒も無駄に出来ない
GraphQL: データ指向
高度なクエリ機能
上記のそれぞれの設計にはメリデメがあるよ。なので、
APIの設計では、流行りや個人的嗜好を無視することが求められる。特定の設計(例えばREST API)が、すべてのAPIの設計にとって理想的なソリューションであるとは限らない。