一人前エンジニア道場

HTTPとAPI基礎 / 約20分

RESTfulなAPI設計の原則

なぜこれを学ぶか

「動くAPI」と「変更に強いAPI」の差は、設計原則を知っているかどうかで決まります。RESTfulな設計は、多くのチームが共有できる共通言語です。

RESTの基本原則は URLはリソース(名詞)、メソッドは操作(動詞) を表すことです。/getUsersのような動詞入りのURLは避け、GET /usersのように表現します。

冪等性 はHTTPメソッドごとに定義されています。GET・PUT・DELETEは本来何度実行しても結果が同じ(冪等)ですが、POSTは冪等ではありません。同じPOSTリクエストが2回届くと、2回分の処理が実行されてしまう可能性があります。

ネストしたリソースの表現(/users/1/orders/5のような形)は便利ですが、深くしすぎない(2階層程度まで) のが実務上のバランスです。深すぎるネストはURL設計を複雑にします。

APIバージョニング(/v1/usersのような形)の目的は、既存のクライアントを壊さずにAPIを進化させることです。破壊的な変更が必要な時に、新バージョンとして併存させます。

重要ポイント

  • URLは名詞(リソース)、操作はHTTPメソッドで表す
  • POSTは冪等ではない(同じリクエストの重複実行に注意)
  • ネストは2階層程度に、バージョニングで破壊的変更に備える

理解度チェック

選ぶと即座に解説が表示されます。

決済APIが `POST /payments` で実装されている。ネットワーク不安定により、同じリクエストが2回送信されてしまった。何が起きる可能性があるか?

ヒントを見る

GET・PUT・DELETEは冪等ですが、POSTはどうだったでしょうか。「冪等でない」とは、同じリクエストを2回送るとどうなることを意味しますか。

スキルセルフチェック

このレッスンの内容をどの程度理解できましたか?