
みなさんこんにちは!
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についてご紹介しました。
それではまたお会いしましょう。