このドキュメントについて
Roadmap.shのバックエンドデベロッパーの学習メモです。
JSON:API
JSON形式のAPI全般のこと、、、ではなく「JSON:API」という名称のWeb APIの仕様のこと
後述する特徴のおかげで効率的にデータを取得できる。
特徴
-
一貫性と予測可能性:
- JSON:APIは、APIのレスポンスのデータ構造を一貫して定義し、予測可能な形式でデータを取得できる
- 開発者がAPIを利用する際に、データの構造やフィールドの命名規則を理解しやすい
-
リレーションシップのサポート:
- 関連するデータを効率的に取得できる仕組みを提供
- リレーションシップを持つリソース同士を簡単に結びつけることができる
-
ページネーション:
- 大量のデータをページごとに取得できる
- ページング情報を含めてデータを返すことで、クライアント側でデータを効率的に表示できる
-
エラーハンドリング:
- エラーが発生した場合、一貫性のあるエラーレスポンスを返す
- エラーの詳細情報やステータスコードを含めて、クライアントに適切な情報を提供する
-
メタデータのサポート:
- メタデータをリクエストやレスポンスに含めることで、追加の情報を提供できる
- ページネーション情報やリクエスト元の情報などをメタデータとして返すことができる
実際の動作について
- 下記のライブラリのデモでJSON:APIを試すことができる
https://github.com/thomaxxl/safrs - PythonのFASTAPI向けのJSON:APIライブラリとしてFastAPI-JSONAPIというものもある
参考
- https://roadmap.sh/backend
- https://jsonapi.org/
- https://www.youtube.com/watch?v=N-4prIh7t38
-
https://mts-ai.github.io/FastAPI-JSONAPI/index.html
実際のリクエストやレスポンスについては後日まとめます。
今日はここまで。