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
Posted at

はじめに

バックエンド開発をしていると、「使いづらいAPI」に出会うことがあります。

例えば
・レスポンス構造がバラバラ
・エンドポイントの命名が不統一
・仕様が曖昧
こういったAPIは「フロントの実装コストが上がる」「バグが増える」「保守が難しくなる」といった問題につながります。
この記事では、実務でよく見るAPI設計のアンチパターンについてまとめます。

① エンドポイントの命名が不統一

例えば下記のように動詞が混ざったり、命名ルールがバラバラだと、使う側が混乱します。

GET /getUsers
GET /user/list
POST /createUser

理想は👇

GET /users
POST /users
GET /users/{id}

👉 リソースベースで統一することが重要です

② レスポンス構造がバラバラ

// パターン①
{ "data": [...] }

// パターン②
{ "users": [...] }

// パターン③
[ ... ]

APIごとに形式が違うとパース処理が増え、バグの原因になるため、統一が必要です。

例👇

{
  "data": [...],
  "meta": { "total": 100 }
}

👉 レスポンスは統一ルールを持つ

③ ステータスコードの使い方が雑

よくあるのがこれ👇

200 OK(エラーなのに)

これだとエラーハンドリングが複雑になる、フロント側の実装が崩れる。

正しくは👇
・200 → 正常
・400 → クライアントエラー
・500 → サーバーエラー
👉 HTTPの意味を守ることが重要

④ フィールドの意味が曖昧

{
  "status": 1
}

これだけだと何のステータスか分からない。

改善👇

{
  "status": "active"
}

または

{
  "isActive": true
}

👉 名前と値で意味が分かる設計にする

まとめ

API設計でよくあるアンチパターンは下記です。
・命名が不統一
・レスポンス構造がバラバラ
・ステータスコードが適当
・フィールドの意味が曖昧

これらは「使う側の視点」を持つことでかなり改善できます。
APIは「内部実装」ではなく“他人が使うインターフェース”であることを意識することが重要です。

告知

もし興味があればですが、
案件に関わる中で一緒に開発できるエンジニアの方ともつながれたら嬉しいです。
・フリーランス
・副業
・業務委託
などで案件を探している方がいれば気軽にDMください。

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?