Рассмотрим эти конечные точки на качестве API, который возвращает исключительно Json:Что такое правильный ответ на нулевой вложенном свойстве ресурса
GET /cities/{id}/stores
GET /cities/{id}/mayor
Оба store
и mayor
объекты, которые могут имеют собственные скалярные свойства.
Отношение city->stores
отношение единообразное отношение, но отношения city->mayor
взаимно однозначно. В обоих случаях результат может быть нулевым.
Я согласен, что бы
GET /stores/{id}
, GET /cities/{id}
и GET /mayors/{id}
должен возвращать 404, когда ресурс с таким идентификатором не существует.
Однако, если в городе нет магазинов, тогда я ожидал бы GET cities/{id}/stores
, чтобы вернуть []
.
Мой вопрос: учитывая, что в городе нет нынешнего мэра, что должно быть GET /cities/{id}/mayor
возвращение?
Встраивание мэра в город всегда является опцией, но на самом деле я задавал этот вопрос, потому что я хотел бы уйти от встраивания слишком большого количества вложенных объектов в ответ, это означает, что на стороне сервера больше вызовов на db, иногда сериализация дорогостоящий. Плюс проверки авторизации становятся ад, если вы начинаете вложенные ресурсы в ответы - вы никогда не знаете, что можно посмотреть где. Тем не менее, 404 кажется наиболее логичным ответом - просто кажется немного странным, что клиент получит ошибку только для проверки, является свойством ресурса null или нет. Благодаря! – mickadoo
В таком случае, возможно, вам следует исследовать язык запросов ресурсов? – Opal