「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。 目次 †概要 †JSONを返すWebAPIを、ざっくりREST APIとか 広義 †2000年にRoy Fielding氏が提唱した、分散システムにおいて 狭義 †上記の設計原則をWebに適用したソフトウェアの設計様式 一般によく使われる狭義のREST †RESTの設計原則(抽象的な概念) †Fielding氏が示したRESTの設計原則(抽象的な概念)。
理論上はHTTPやXMLとはまったく無縁なRESTシステムもあり得る。 設計ポイント †RESTは疎結合で、不特定多数の開発者を相手にする場合は優れた方法らしい。 コレを実現するRESTの設計のポイントだが、ざっくり、 ・・・翌々見てみると、RESTはデータ中心が過ぎるので、 このようなケースには、JSON-RPCが適合するかもしれない。 リソースを決定する。 †リソース †記事, コメント, タグ, カテゴリなど。 操作 †
親子関係 †URIを決める。 †ディレクトリ or サブドメイン †2つの方法がある。
バージョン †
リソースの関係性 †リソース名は複数形の名詞のみで構成し、IDを指定して特定する。
親子関係がある場合、以下のように関係性を表す。
動詞ではなく名詞を使う †ページング †
その他 †
HTTPメソッドを決定する。 †POST, GET, PUT, DELETEを使用する。 POST(生成) †
GET(読み取り) †リソースを取得する。 PUT(更新) †
DELETE(削除) †リソースを削除をする。 その他 †
リターンを決める。 †HTTPステータスコード †個別
共通
HTTPヘッダ †
一貫性のあるエラーペイロード †{ "messageID": "xxxxx", "message": "yyyy yyyy yyyy.", } バージョン †バージョン情報が省略されている場合、既定値を使用 URIのバーション †http://api.{ドメイン名}/{version}/.../ クエリ文字列のバージョン †http://api.{ドメイン名}/.../?version={version} ヘッダーのバージョン †GET https://... HTTP/1.1 Custom-Header: api-version={version} MIMEタイプのバージョン †前述のAPIのバージョンに加え、 GET https://....com/.../{version} HTTP/1.1 Accept: application/vnd.....v1+json 参考 †
Tags: :.NET開発, :通信技術, :.NET Standard, :.NET Core, :ASP.NET, :ASP.NET Web API |