Давайте у вас есть URL, как это:REST дизайн URL
POST /departments
, который создает новый департамент
и POST /employees
, который создает новый трудоустроить.
Оба URL возвращает заголовок местоположения для вновь созданного ресурса и т.д.
Предположим, что работник может принадлежать нескольким отделам.
Как бы вы структурировали соответствующий URL-адрес и, самое главное, вы использовали POST или PUT для выполнения этой операции? Например: добавить Билла отдела книг, вы бы использовать:
POST /departments/Books/employees/Bill
Или:
PUT /departments/Books
{
"employee" : "Bill"
}
Прежние смотрит на меня более семантически правильно, так как в любом случае в POST
теле я имеют больше данных, которые характеризуют это новое отношение. Кроме того
GET /employee/Bill
возвращает тело, которое отличается от возвращаемой:
GET /departments/Books/employees/Bill
Так мне добавлять отношения, как создать новые ресурсы. Однако мне не нравится тот факт, что в
POST /departments/Books/employees/Bill
Я явно указываю новый ресурс в URL.
Имеет смысл, однако я считаю, что код состояния для PUT должен быть 204 (без содержимого). Серьезные GET возвращают другое представление, потому что у сотрудника «Билл» есть некоторые поля, специфичные для отдела (они происходят из отношения N: N в дБ на самом деле). – Roberto
Да, хорошо. Просто не 201, потому что ресурс не создается. –