RESTful APIのエンドポイント設計は、リソース指向のアプローチに基づいて行われます。以下に、典型的なエンドポイント設計のサンプルを示します。ここでは、ユーザー(Users)と記事(Articles)という2つのリソースを例にとります。
1. ユーザー(Users)リソースのエンドポイント設計
1.1 ユーザーの一覧を取得
HTTPメソッド: GET
エンドポイント: /users
説明: すべてのユーザーの一覧を取得する。
GET /users
1.2 特定のユーザーを取得
HTTPメソッド: GET
エンドポイント: /users/{userId}
説明: 特定のユーザーの詳細を取得する。
GET /users/123
1.3 新しいユーザーを作成
HTTPメソッド: POST
エンドポイント: /users
説明: 新しいユーザーを作成する。
POST /users
リクエストボディ(例):
{
"name": "John Doe",
"email": "john.doe@example.com"
}
1.4 特定のユーザーを更新
HTTPメソッド: PUT
エンドポイント: /users/{userId}
説明: 特定のユーザーの情報を更新する。
PUT /users/123
リクエストボディ(例):
{
"name": "John Doe",
"email": "john.doe@example.com"
}
1.5 特定のユーザーを部分的に更新
HTTPメソッド: PATCH
エンドポイント: /users/{userId}
説明: 特定のユーザーの情報を部分的に更新する。
PATCH /users/123
リクエストボディ(例):
{
"email": "john.newemail@example.com"
}
1.6 特定のユーザーを削除
HTTPメソッド: DELETE
エンドポイント: /users/{userId}
説明: 特定のユーザーを削除する。
DELETE /users/123
2. 記事(Articles)リソースのエンドポイント設計
2.1 記事の一覧を取得
HTTPメソッド: GET
エンドポイント: /articles
説明: すべての記事の一覧を取得する。
GET /articles
2.2 特定の記事を取得
HTTPメソッド: GET
エンドポイント: /articles/{articleId}
説明: 特定の記事の詳細を取得する。
GET /articles/456
2.3 新しい記事を作成
HTTPメソッド: POST
エンドポイント: /articles
説明: 新しい記事を作成する。
POST /articles
リクエストボディ(例):
{
"title": "New Article",
"content": "This is the content of the new article.",
"authorId": 123
}
2.4 特定の記事を更新
HTTPメソッド: PUT
エンドポイント: /articles/{articleId}
説明: 特定の記事の情報を更新する。
PUT /articles/456
リクエストボディ(例):
{
"title": "Updated Article",
"content": "This is the updated content of the article."
}
2.5 特定の記事を部分的に更新
HTTPメソッド: PATCH
エンドポイント: /articles/{articleId}
説明: 特定の記事の情報を部分的に更新する。
PATCH /articles/456
リクエストボディ(例):
{
"title": "Partially Updated Article"
}
2.6 特定の記事を削除
HTTPメソッド: DELETE
エンドポイント: /articles/{articleId}
説明: 特定の記事を削除する。
DELETE /articles/456
3. ネストされたリソースのエンドポイント設計
3.1 特定のユーザーの記事一覧を取得
HTTPメソッド: GET
エンドポイント: /users/{userId}/articles
説明: 特定のユーザーが作成した記事の一覧を取得する。
GET /users/123/articles
3.2 特定のユーザーの記事を作成
HTTPメソッド: POST
エンドポイント: /users/{userId}/articles
説明: 特定のユーザーが新しい記事を作成する。
POST /users/123/articles
リクエストボディ(例):
{
"title": "New Article by User",
"content": "This is the content of the new article by the user."
}
これらのエンドポイント設計は、RESTful APIの基本的なパターンを示しています。リソースの操作(作成、取得、更新、削除)に対応するHTTPメソッドを適切に使用し、リソースの階層構造をURLで表現することが重要です。