@700ghz

Можно ли иметь «лишний» ID в URL REST API?

Всем привет! :)
Строю API.

У магазинов есть пользователи.
Нужен endpoint "обновить юзера" (изменить пароль, имя и т.д.). Какое URL более правильное:
PATCH /users/:userId
ИЛИ
PATCH /shops/:shopId/users/:userId
Оба url будут работать. Хотя во втором URL лишний id (shopId).
Ошибка ли иметь лишний ID в URL?

Заранее спасибо!
  • Вопрос задан
  • 120 просмотров
Решения вопроса 2
@luna3956
Даже если пользователи привязаны к магазинам, то раз Вы допускаете возможность использования /users/:userId, предполагаю, идентификаторы пользователей уникальны не только в пределах магазина, но и всей системы. В таком случае, уровень /shops/:shopId будет лишним в задаче изменения информации о пользователе, даже если у пользователя есть привязка к магазину в плоскости бизнес-логики. Поэтому, используйте /users/:userId.
Ответ написан
Комментировать
hePPer
@hePPer
можно.
но если ид юзера достаточно для внесения изменений и эти изменения однозначны - то лучше вариант 1. иначе лучше второй вариант.
пример: меняешь юзеру возраст и надо проверить позволяет ли магазин иметь юзера с таким возрастом или нет (контент 18+). или - при изменении юзера нужны какие то сведения о магазине - то тоже вариант 2 лучше
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы