RESTfulAPIとは何か


RESTfulAPIとは(RESTのうちAPI設計時の制約)に従って記述すしたAPI
参)http://e-words.jp/w/REST.html

一言で言えば、WebAPIを設計する際のお作法のひとつ。

詳しくは以下の本で調べた。
~~~~~~~~~~~~~~~~~~~~~~~
Web API Design
WebAPIのベストプラクティス
by apigee
~~~~~~~~~~~~~~~~~~~~~~~
RESTfulAPIを深く考えすぎないで、RESTfulAPIの設計方法の具体例を示す。
「APIを作る時にRESTの原理主義よりも開発者がいかに開発しやすいかが重要」というのが前提。

この本の内容はブログにまとめられている。
参)http://d.hatena.ne.jp/winplus/20120701/1341108824
このブログの簡単なメモ

◎URL
リソースごとに、2つのベースURLをつかう
ベースURLから動詞をとりのぞく
HTTPの動詞をつかって、コレクションと要素とを操作する
名詞は複数形
名詞は抽象的にしすぎない
ベースURLが複雑になる場合はクエリパラメタを使う
バージョンをURLに入れる

例) GET /v2.0/dogs/1234?color=red&state=running

◎ステータスコード
APIの使用プログラムに優しい設計にするためにステータスコードはしっかり記述する。
ステータスコードはOK,NG(サーバ起因)、NG(クライアント起因)のどれかが主。
これ以外は以下のステータスを使えば大体おk。
201 - Created
304 - Not Modified
404 - Not Found
401 - Unauthorized
403 - Forbidden
また、APIの使用プログラムを開発する開発者の為にも、エラーメッセージをつけてやるといい。

◎レスポンス
複数の形式をサポートする。xml,json,..
リソースを返却しない場合のみ動詞を使う
例) /convert?from=EUR&to=CNY&amount=100