REST API とは何ですか

資源を URL で表し、HTTP のメソッドで操作を、ステータスコードで結果を表す決め方として答える問い。作った API の URL を例に話します。

こう聞かれます

  • 「REST API とは何か、説明してください」
  • 「投稿の一覧、1 件の取得、作成、更新、削除の API を作るなら、URL とメソッドをどう決めますか」
  • 「作ったアプリの API はどんな形でしたか」(作った物から、設計の考え方を確かめる形)

面接官が見ている点

  • 「JSON を返す API」で止めず、資源、メソッド、ステータスの 3 つで説明できるか
  • URL に動詞を入れず、名詞の資源で組み立てられるか
  • 自分の作った API を、その物差しで説明し直せるか

短い答え

  • REST API は、扱う物 (資源) を /posts/42 のような URL で表し、HTTP のメソッドで操作を決める API の作り方です。
  • 取るのは GET、作るのは POST、置き換えるのは PUT、一部を直すのは PATCH、消すのは DELETE と、同じ URL にメソッドを変えて頼みます。
  • 結果はステータスコードで伝え、中身は多くの場合 JSON で返します。

少し詳しい答え

資源と URL

URL は「何を」を表す名詞にします。「どうする」はメソッドに任せます。

GET    /posts      一覧
POST   /posts      作る
GET    /posts/42   1 件
PATCH  /posts/42   一部を直す
DELETE /posts/42   消す

/getPosts や /deletePost?id=42 のように URL に動詞を入れると、操作が増えるたびに URL が増え、使う人が覚える物も増えます。資源とメソッドの組み合わせにすると、初めて見る人も形を予想できます。

結果はステータスコードで

作れたら 201、入力の不備なら 400、無ければ 404、のように結果を番号で返します。呼ぶ側は番号を見て成否を分け、本文の JSON から中身を読みます。

ステートレス

REST の考え方では、1 回の要求に必要な情報を全部入れて送ります。サーバーが前の要求を覚えていなくても答えられるので、サーバーを増やしやすくなります。ログインの情報も、毎回の要求に Cookie やトークンで付けます。

作った物と結ぶなら、たとえば「投稿アプリで /posts と /posts/:id の 2 つの URL にメソッドを組み合わせ、作成は 201、他人の投稿の削除は 403 を返した」のように話します。

よくある間違い

  • 「REST API は JSON を返す API のこと」と言う JSON はよく使う形というだけです。芯は、資源を URL で表し、操作をメソッドで分けることです
  • URL に動詞を入れる /createUser のような形は、メソッドと役目が重なります。POST /users で同じことを表せます
  • 何が起きても 200 を返す失敗を本文にだけ書くと、呼ぶ側が番号で成否を分けられません

深掘りの問い

  • 「PUT と PATCH の違いは何ですか」 PUT は資源を丸ごと置き換え、PATCH は一部だけを直す、と答えます。PUT は何度送っても結果が同じ (冪等) である点も添えます
  • 「投稿に付いたコメントの一覧は、どんな URL にしますか」 /posts/42/comments のように、親の資源の下に置く形を挙げます
  • 「API の形を変えるとき、今の利用者を壊さないためには」 /v2/ のように版を分ける、項目は足すだけにして消さない、などを挙げます

確認日 2026年10月23日

技術面接問題の一覧へ戻る