Показать сообщение отдельно
  #1 (permalink)  
Старый 12.10.2021, 10:17
Аспирант
Отправить личное сообщение для Elfix Посмотреть профиль Найти все сообщения от Elfix
 
Регистрация: 03.01.2018
Сообщений: 38

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).
Ответить с цитированием