マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

JSONを返すWebAPIを、ざっくりREST APIとか
言っているケースが多いので、定義を明らかにする。

広義

2000年にRoy Fielding氏が提唱した、分散システムにおいて
複数のソフトウェアを連携させるのに適した設計原則の集合。

狭義

上記の設計原則をWebに適用したソフトウェアの設計様式
(一般的には、コチラの狭義の意味が用いられている)

一般によく使われる狭義のREST

RESTの設計原則(抽象的な概念)

Fielding氏が示したRESTの設計原則(抽象的な概念)。

理論上はHTTPやXMLとはまったく無縁なRESTシステムもあり得る。

設計ポイント

RESTは疎結合で、不特定多数の開発者を相手にする場合は優れた方法らしい。

コレを実現するRESTの設計のポイントだが、ざっくり、
以下手順により、指定のURIで指定のリソースに対する操作を実現する。

・・・翌々見てみると、RESTはデータ中心が過ぎるので、
機能中心のURIにしたい場合などの要件もあるため、
WebAPIを、完全に、このREST基準に準拠させなくてもイイ気がする。

このようなケースには、JSON-RPCが適合するかもしれない。

リソースを決定する。

リソース

記事, コメント, タグ, カテゴリなど。

操作

親子関係

URIを決める。

ディレクトリ or サブドメイン

2つの方法がある。

バージョン

http://api.{ドメイン名}/{version}/

リソースの関係性

リソース名は複数形の名詞のみで構成し、IDを指定して特定する。

親子関係がある場合、以下のように関係性を表す。

動詞ではなく名詞を使う

操作はHTTPメソッドで決める。

ページング

その他

HTTPメソッドを決定する。

POST, GET, PUT, DELETEを使用する。

POST(生成)

GET(読み取り)

リソースを取得する。

PUT(更新)

DELETE(削除)

リソースを削除をする。

その他

リターンを決める。

HTTPステータスコード

個別

共通

HTTPヘッダ

一貫性のあるエラーペイロード

{
    "messageID": "xxxxx",
    "message": "yyyy yyyy yyyy.",
}

参考


Tags: :プログラミング, :通信技術, :.NET開発, :.NET Core, :ASP.NET, :ASP.NET Web API


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS