API/設計
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
-[[5分で絶対に分かるAPI設計の考え方とポイント:http://www....
-[[Web API 設計入門:https://zenn.dev/nakaryo/articles/87b...
-[[Technical Note - Web API The Good Parts:https://hkawab...
-[[翻訳: WebAPI 設計のベストプラクティス:http://qiita.com...
-[[綺麗なAPIを設計するには気をつけたい5つのポイント:https...
-[[使い勝手や拡張性を担保できるAPI設計には、設計時のルー...
-[[GoogleのWebAPI設計とWebAPI設計のベストプラクティスを比...
-[[「WebAPI 設計のベストプラクティス」に対する所感:http:/...
-[[WebAPIの設計から実装まで〜設計編〜:http://qiita.com/ta...
-[[WebAPIの設計から実装まで〜実装編〜:http://qiita.com/ta...
-[[API 設計: gRPC、OpenAPI、REST の概要と、それらを使用す...
-[[Swagger、GraphQL、gRPC+Protocol Buffersの概観:https://...
-[[OpenAPI や Protocol Buffers のおかげで開発がかなり捗っ...
-[[マイクロサービスにおけるWeb APIスキーマの管理 ─ GraphQ...
-[[ASP.NET CoreでgRPCサービスを作ってみた:https://www.qes...
-[[IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用...
*リクエスト [#b9c32acc]
**エンドポイント [#y1a65b36]
-[[Web API 設計の基本を学ぶ(APIエンドポイント):https://...
-[[SPA開発におけるWeb API設計入門(エンドポイント編):htt...
***URI [#q9a6bfe8]
-動詞ではなく名詞を用い、複数形とする
-スネイクケース推奨
--但し、ドメイン名ではスネイクケースが使用できないことに...
-APIのバージョンをURIに含める
--バージョン番号は「v」+「整数」(例:v1, v2, ...)
-ベースURIにAPI提供を表す「api」という単語を含める
***パラメタ [#f6ca9b6c]
-1つのパラメタに複数の値を指定する際にはカンマ「,」を用いる
***ページネーション [#va71087d]
-[[RESTful API のページネーションで考えるべきこと:https:/...
-[[Web Api でずれないページネーションとSQL:https://qiita....
-[[REST APIのデータ制御について(クエリ、ページネーション)...
-limit/offset型
--取得開始ページ「offset」または「page」と件数「limit」と...
-ページ番号型
--ページ番号「page」とする
-カーソル型
--「cursor」で開始するデータの ID を指定
--データ量が多い場合に備えて「limit」も指定できるようにする
*レスポンス [#t851304e]
-[[RESTful APIのHTTPステータスコード設計:https://qiita.co...
**文字コード [#r517d9d7]
-UTF8
**データ表記 [#m7d2bf3b]
***日時 [#uce057ef]
-[[ISO 8601 - WIkipedia:https://ja.wikipedia.org/wiki/ISO...
-[[ISO 8601 の時刻表記:https://www.keicode.com/note/datet...
-[[Date and Time API 復習:https://qiita.com/opengl-8080/i...
-ISO8601に準拠
-日本時間の場合:YYYY-MM-DDTHH:mm:ss+0900
***性別 [#tce1b184]
-[[システムで「性別」の情報を扱う前に知っておくべきこと:h...
-ISO5218に準拠
-男性は 1、女性は 2、それ以外は 9、不明な場合は 0
**メタデータ [#nb2620e1]
-[[API はメタデータを提供せよ LT#1 JJUG_CCC2018:https://w...
**エラー [#t29c2016]
-[[RESTful APIのエラー設計:https://qiita.com/NagaokaKenic...
-[[WebAPIでエラーをどう表現すべき?15のサービスを調査して...
***データ項目 [#y53644fa]
-status ... HTTPステータスコードをHTTPレスポンスヘッダに...
-type ... エラーの種別を示すURIを格納
-title ... エラーの名称を表示
-detail ... エラーの説明文を格納
***セキュアなエラーフィードバック [#k8c256be]
-403 Forbidden
--データへのアクセス不許可 → データが存在することを暗に認...
--「404 Not Found」レスポンスに変えることも検討する
-500 Internal Server Error
--APIのベースとなっている技術スタックに関する詳細情報が提...
--APIの内部で実際に稼働しているものの手がかりになるような...
*HAL (Hyper Application Language) [#f8c117a4]
-[[HAL - Hypertext Application Language:https://stateless...
-[[Web APIにはJSONベースのフォーマットを使おう:https://qi...
*ファイルアップロード [#rdf307bd]
-[[WebAPI でファイルをアップロードする方法アレコレ:https:...
終了行:
-[[5分で絶対に分かるAPI設計の考え方とポイント:http://www....
-[[Web API 設計入門:https://zenn.dev/nakaryo/articles/87b...
-[[Technical Note - Web API The Good Parts:https://hkawab...
-[[翻訳: WebAPI 設計のベストプラクティス:http://qiita.com...
-[[綺麗なAPIを設計するには気をつけたい5つのポイント:https...
-[[使い勝手や拡張性を担保できるAPI設計には、設計時のルー...
-[[GoogleのWebAPI設計とWebAPI設計のベストプラクティスを比...
-[[「WebAPI 設計のベストプラクティス」に対する所感:http:/...
-[[WebAPIの設計から実装まで〜設計編〜:http://qiita.com/ta...
-[[WebAPIの設計から実装まで〜実装編〜:http://qiita.com/ta...
-[[API 設計: gRPC、OpenAPI、REST の概要と、それらを使用す...
-[[Swagger、GraphQL、gRPC+Protocol Buffersの概観:https://...
-[[OpenAPI や Protocol Buffers のおかげで開発がかなり捗っ...
-[[マイクロサービスにおけるWeb APIスキーマの管理 ─ GraphQ...
-[[ASP.NET CoreでgRPCサービスを作ってみた:https://www.qes...
-[[IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用...
*リクエスト [#b9c32acc]
**エンドポイント [#y1a65b36]
-[[Web API 設計の基本を学ぶ(APIエンドポイント):https://...
-[[SPA開発におけるWeb API設計入門(エンドポイント編):htt...
***URI [#q9a6bfe8]
-動詞ではなく名詞を用い、複数形とする
-スネイクケース推奨
--但し、ドメイン名ではスネイクケースが使用できないことに...
-APIのバージョンをURIに含める
--バージョン番号は「v」+「整数」(例:v1, v2, ...)
-ベースURIにAPI提供を表す「api」という単語を含める
***パラメタ [#f6ca9b6c]
-1つのパラメタに複数の値を指定する際にはカンマ「,」を用いる
***ページネーション [#va71087d]
-[[RESTful API のページネーションで考えるべきこと:https:/...
-[[Web Api でずれないページネーションとSQL:https://qiita....
-[[REST APIのデータ制御について(クエリ、ページネーション)...
-limit/offset型
--取得開始ページ「offset」または「page」と件数「limit」と...
-ページ番号型
--ページ番号「page」とする
-カーソル型
--「cursor」で開始するデータの ID を指定
--データ量が多い場合に備えて「limit」も指定できるようにする
*レスポンス [#t851304e]
-[[RESTful APIのHTTPステータスコード設計:https://qiita.co...
**文字コード [#r517d9d7]
-UTF8
**データ表記 [#m7d2bf3b]
***日時 [#uce057ef]
-[[ISO 8601 - WIkipedia:https://ja.wikipedia.org/wiki/ISO...
-[[ISO 8601 の時刻表記:https://www.keicode.com/note/datet...
-[[Date and Time API 復習:https://qiita.com/opengl-8080/i...
-ISO8601に準拠
-日本時間の場合:YYYY-MM-DDTHH:mm:ss+0900
***性別 [#tce1b184]
-[[システムで「性別」の情報を扱う前に知っておくべきこと:h...
-ISO5218に準拠
-男性は 1、女性は 2、それ以外は 9、不明な場合は 0
**メタデータ [#nb2620e1]
-[[API はメタデータを提供せよ LT#1 JJUG_CCC2018:https://w...
**エラー [#t29c2016]
-[[RESTful APIのエラー設計:https://qiita.com/NagaokaKenic...
-[[WebAPIでエラーをどう表現すべき?15のサービスを調査して...
***データ項目 [#y53644fa]
-status ... HTTPステータスコードをHTTPレスポンスヘッダに...
-type ... エラーの種別を示すURIを格納
-title ... エラーの名称を表示
-detail ... エラーの説明文を格納
***セキュアなエラーフィードバック [#k8c256be]
-403 Forbidden
--データへのアクセス不許可 → データが存在することを暗に認...
--「404 Not Found」レスポンスに変えることも検討する
-500 Internal Server Error
--APIのベースとなっている技術スタックに関する詳細情報が提...
--APIの内部で実際に稼働しているものの手がかりになるような...
*HAL (Hyper Application Language) [#f8c117a4]
-[[HAL - Hypertext Application Language:https://stateless...
-[[Web APIにはJSONベースのフォーマットを使おう:https://qi...
*ファイルアップロード [#rdf307bd]
-[[WebAPI でファイルをアップロードする方法アレコレ:https:...
ページ名: