Web社会を支えるREST API

みなさんこんにちは!
REST APIの原理原則についてご紹介しようと思います。

原理原則

HTTPメソッド

GET

リソースを取得するメソッドです。

PUT

PUTはPOSTと違い、リソース名を指定して作成または更新をかけるメソッドです。

POST

リソース名がサーバ側で割り振られます。

PATCH

リソースを部分更新するメソッドです。

DELETE

DELETEメソッドには冪等性がありますが、1度目のリクエストでは200レスポンスを、2度目以降のリクエストは404レスポンスを返すことが普通です1。このように冪等性があるAPIでも回数に応じてレスポンスが変化することがありますが、リソースが削除されたという結果(リソース状態)が2度目のリクエストで覆ることはありません。

HTTPステータスコード

HTTPステータスコードは実際どんな番号にしてもよいし、別になくても構わないが、ルールとして決めておくことで多くの技術者が瞬時にエラー原因を特定することができるというメリットがある。そのため、エラーコードを返す場合は実際の挙動を適切に表すコードを設定する必要がある。

200 OK

最も一般的なステータスコードです。単にOKという意味であったり、アップデートや削除が完了した際にも200を使います。

301 Moved Permanently

恒久的にURLが変わった場合に使います。

400 Bad Request

リクエストが不正な場合に指定します。

403 Forbidden

リソースへのアクセス権限がない場合に使います。

404 Not Found

リソースが存在しない場合のエラーとして用います。

405 Method Not Allowed

リクエストヘッダー情報が間違っている場合に使います。mimeが間違っている場合もありますが、シグネチャが間違っていたり、セットすべきヘッダーがない場合も406を使います。

409 Conflict

更新がバッティングしたり、ユニークなIDが重複してしまった場合などに使います。

500 Internal Server Error

例外エラーが発生した場合に返されます。

502 Bad Gateway

アプリケーションサーバが落ちている時にHTTPサーバが返すことが多いエラーです。

504 Time Out

時間内にサーバーがレスポンスを返すことができなかったときに返します。

まとめ

いかがだったでしょうか。
今回はREST APIについてご紹介しました。
それではまたお会いしましょう。