Если статус - это что-то, что не может быть запрошено, вы даже можете иметь его как часть самого объекта пользователя, например / user /: user_id, и выполнить PATCH (с полезной нагрузкой JSON) для обновления статуса. Обычно люди предпочитают вложенные пути, если подпуть можно запросить как подресурс сам по себе или обновить независимо. Итак, если кому-то нужен статус пользователя, разве он не ожидал бы, что это придет в результате GET / user /: user_id? Или он должен сделать еще один вызов GET для / user /: user_id / status? Я думаю, что путь / status не может быть хорошей идеей.
Кроме того, если вы добавите что-то вроде статуса сейчас, что произойдет, если вам понадобится обновить имя, адрес и т. Д. В будущем. Мы же не хотим продолжать добавлять новые подпути для каждого поля, верно? Кроме того, наличие подпути, подобного перечислению, в пути URL (действительный / not_valid и т. Д.), Похоже, не является правильным. Если вы включите его в полезную нагрузку JSON, он попадет в схему, и вы сможете создать его красивую версию на случай, если вы внесете новые дополнения в перечисление. Наличие его как части URL-адреса означает, что теперь клиенты также должны знать о новом пути.
С другой стороны, вы также должны подумать об удобстве использования API. Одно практическое правило, которое я обычно придерживаюсь при разработке REST API: я хочу, чтобы мои клиенты интегрировались с моим API за 2 минуты или около того, и я должен свести к минимуму количество вещей, которые ему нужно знать для успешной интеграции. Все стандарты и нормы могут оказаться вторичными по отношению к удобству использования.
person
Ramkumar Venkataraman
schedule
31.08.2016