0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

初めてのAPI設計がボロボロだった件

0
Last updated at Posted at 2026-04-10

初めてのAPI設計

AIに注意された点

  • URLは動詞ではなく名詞で設計する
  • ネストは最小限にする
  • PUTとPATCHは役割が違う
  • 命名規則は統一する

皆さん、こんにちは。私は工学系の学部に所属している学部4年です。
来月から就職先の内定者インターンが始まるため、バックエンドの勉強をしています。
今までAPIの設計をきちんとしたことがなかったので、今回試しにChatGPTに添削してもらいました。

結果 : ボロクソに言われてしまいました!!

ということで、反省の意味も込めてここにまとめておきます!

この記事は2026年4月現在の情報により記述しています。

URLは「リソース(名詞)」で表現する

初めは、/tasks/editのような感じで書いてしまっていました。

フロントばかりやっていたせいもあり、リンクの感覚でエンドポイントを作ってしまっていました...

名詞を使って、操作はHTTPメソッドで表現する方がRESTの考え方に沿っているらしいです。

- PUT /tasks/edit
+ PATCH /tasks/:taskId

ネストが多い

元のエンドポイントは
/projects/:projectId/tasks/:taskId
となっていました。
私の設計でtaskIdによって一意に定まるので、少し冗長です。

- /projects/:projectId/tasks/:taskId
+ /tasks/:taskId

よって、tasks/:taskId とすれば良いことがわかりました。

PUTとPATCHの使い分け

PUTをメインに使っていましたが、PATCHとの違いをあまりわかっていませんでした。

PUT … リソース全体の置き換え(全フィールド更新)
PATCH … 一部のフィールドのみ更新するために使う。

というような違いがあるようです。

PUTはリソース全体の置き換えであり、
POSTのような新規作成とは役割が異なる点に注意が必要とのことです。

メソッド 役割
POST 新規作成
PUT 全体更新
PATCH 部分更新

URLは camelCaseとsnake_caseのどちらかに合わせる

フレームワークでsnake_caseを使っていたせいで、混ざってしまっていました...

まとめ

今回はインターンが控えていることもあり、ChatGPTに厳しめにチェックしてもらいました。

結果的には学びが多く、おすすめの方法です。

せっかくAIに添削をしてもらえる時代なので、記事を読んで覚えるのも大事ですが、

実際に作って添削させる方が身になる気がしました。

皆さんもぜひ!!

ps.間違いなどありましたら、指摘していただけますと幸いです。

項目 悪い例 良い例
URL設計 /tasks/edit /tasks/:taskId
ネスト /projects/:id/tasks/:id /tasks/:taskId
更新方法 PUTで全部やる PUTとPATCHを使い分け
命名 camelとsnake混在 どちらかに統一

参照

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?