はじめに
REST APIの設計において、URI(Uniform Resource Identifier)の設計は非常に重要です。良いURI設計は、APIの使いやすさやメンテナンスの容易さに大きく影響します。この記事では、REST APIのURI設計における9つのポイントを具体例と共に解説します。
URI設計のポイント
1. 短く入力しやすい(冗長なパスを含まない)
URIはできるだけ短くし、入力が簡単であることが重要です。冗長なパスを含まないようにしましょう。
例
- 良い例:
/users
- 悪い例:
/api/v1/users/list/all
2. 人間が読んで理解できる(省略しない)
URIは人間が読んで理解できるように設計する必要があります。省略を避け、明確な名前を使用しましょう。
例
- 良い例:
/users
- 悪い例:
/usr
3. 大文字小文字が混雑していない(すべて小文字)
URIはすべて
小文字で記述することで、一貫性を保ち、誤解や入力ミスを防ぎます。
例
- 良い例:
/users
- 悪い例:
/Users
または/UsersList
4. 単語はハイフンでつなげる
単語をつなぐ際にはハイフン(-)を使用することで、URIが読みやすくなります。アンダースコア(_)は避けましょう。
例
- 良い例:
/user-profiles
- 悪い例:
/user_profiles
または/userProfiles
5. 単語は複数形を利用する
リソースのコレクションを示す場合、単語を複数形で表現するのが一般的です。
例
- 良い例:
/users
- 悪い例:
/user
6. エンコードを必要とする文字を使わない
URIには、空白や特殊文字を避け、エンコードが必要な文字を使わないようにしましょう。
例
- 良い例:
/users
- 悪い例:
/users list
7. サーバー側のアーキテクチャが反映されていない
URIは、サーバーの内部構造やアーキテクチャを反映させず、リソースの識別に集中するべきです。
例
- 良い例:
/users
- 悪い例:
/database/users
8. 改造しやすい(Hackable)
URIは直感的に変更できる(改造しやすい)ことが理想です。例えば、ユーザーの投稿を参照する際に、ベースURIから自然に推測できるようにしましょう。
例
- 良い例:
/users/123/posts
(ユーザーID 123の投稿) - 悪い例:
/posts?user_id=123
9. ルールが統一されている
URIの設計には一貫したルールを適用することで、使いやすさとメンテナンス性が向上します。
例
- 良い例: 全てのリソースURIが同じパターンに従う
/users
/users/123
/users/123/posts
- 悪い例: URIのパターンがバラバラ
/users
/user_detail/123
/post/list?user_id=123
具体例
以下に、上記のポイントを踏まえた具体的なURI設計例を示します:
-
ユーザーリソースの操作
- ユーザーの一覧取得:
GET /users
- 新しいユーザーの作成:
POST /users
- 特定ユーザーの取得:
GET /users/123
- ユーザー情報の更新:
PUT /users/123
- ユーザーの削除:
DELETE /users/123
- ユーザーの一覧取得:
-
ユーザーの投稿リソースの操作
- 特定ユーザーの投稿一覧取得:
GET /users/123/posts
- 特定ユーザーの新しい投稿作成:
POST /users/123/posts
- 特定の投稿の取得:
GET /users/123/posts/456
- 投稿の更新:
PUT /users/123/posts/456
- 投稿の削除:
DELETE /users/123/posts/456
- 特定ユーザーの投稿一覧取得:
まとめ
良いURI設計は、APIの使いやすさとメンテナンス性を大きく向上させます。ここで紹介した9つのポイントを参考にして、わかりやすく、一貫性のあるURIを設計しましょう。具体例を参考にしながら、自分のプロジェクトに最適なURIを考えることで、開発効率を向上させることができます。