API
参考URL
実稼働環境におけるベスト・プラクティス: パフォーマンスと信頼性
Express×Helmetでウェブセキュリティを学ぶ
WebLogic Server のチューニングにおける重要推奨事項
冪等な処理を行うAPIの作り方
何度も呼び出されても変わらず返すためにはDBなどにプライマリーキーを設定する。
2度呼び出された場合はエラーを返すことができるようになる。
APIモードが生まれた理由
かつてはページ遷移に伴ってAPIにアクセスを行っていた。しかし、昨今はページ読み込みとは別にタイミングで情報を取得する。 これによりやり取りするデータのサイズを小さくしたり、データのやり取りをタイミングを調整することでより良いユーザー体験を提供することが可能になるため。
モノシリックなAPIを作るべきではない
ポイントAPIなど、分離するこ とで違うサービスにも提供ができる。
バックエンドサービスひとつで賄っていたのが、責務によって分けることが良い場合もある。
API種類
フロントエンドから直接機能されるAPIの開発には、いくつかの一般的な選択肢が存在する
- REST API
- GraphQL API
- WebSocket API
Google blog
API 設計: gRPC、OpenAPI、REST の概要と、それらを使用するタイミングを理解する
上記のAPI種類が決まったら
- セキュアな通信か
- 認証は?
- 承認は?
- 監視、可観測性、ログ
API設計に関するまとめ
-
LSUDs Large Set of Unknown Developers(不特定多数のユーザーに提供するAPI)
-
SSKDs Small Set of Unknown Developers(特定のシステムのみで利用する専用のAPI)
-
HATEOS Hypermedia As The Engine Of Application State(リソース同士に関連性のあるAPIのこと)
APIリクエスト(POST/PUT)のcontent-type
-
application/x-www-form-urlencoded
body部分にkey-value形式で送信したいデータを格納する。 -
application/json(こっちのが主流)
body部分にJSON形式で送信したいデータを格納する。
APIレスポンスのcontent-typeとフォーマット
-
application/json(JSON-RPC)
-
application/hal+json(HAL)
-
application/vnd.api+json(JSON API) これがParrotだとbackendが返す。
-
application/vnd.collection+json(Collection JSON)