REST API Проектирование путей запроса
Приветствую!
Сделал несколько API для управления пользователями.
GET /api/users - получение списка пользователей;
GET /api/users/{userId} - получение полей выбранного пользователя;
POST /api/users - создание нового пользователя;
PATCH /api/users - изменение полей текущего пользователя;
PATCH /api/users/{userId} - изменение полей конкретного пользователя;
DELETE /api/users - удаление текущего пользователя;
DELETE /api/users/{userId} - удаление конкретного пользователя.
Есть еще желание сделать функционал получения, создания, редактирования, удаления адреса конкретного пользователя, но не понимаю в каком формате лучше это реализовать?
Нужно будет со временем получать список всех адресов, независимо от того, какому пользователю они принадлежат, или получать список адресов конкретного пользователя.
Я пока думаю о таком варианте:
GET /api/postalAddresses - получить список всех адресов;
GET /api/postalAddresses/{postalAddressId} - получить поля конкретного адреса;
GET /api/postalAddresses/users/{userId} - получить список адресов конкретного пользователя
GET /api/postalAddresses/{postalAddressId}/users/{userId} - получить поля конкретного адреса у конкретного пользователя.
Или такой вариант:
GET /api/users/postalAddresses - получить список всех адресов текущего пользователя
GET /api/users/{userId}/postalAddresses/ - получить список всех адресов конкретного пользователя
GET /api/users/{userId}/postalAddresses/{postalAddressId} - получить поля конкретного адреса у конкретного пользователя.
Таблица postalAddresses подчинена таблице users (postalAddresses.userId = users.id).
|