Open棟梁Project - マイクロソフト系技術情報 Wiki

目次

概要

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

広義

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

狭義

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

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

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

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

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

設計ポイント

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

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

リソースを決定する。

リソース

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

操作

親子関係

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