RESTful API POST запрос вызова без тела - PullRequest
0 голосов
/ 19 сентября 2018

Я хочу создать новый вызов в моем API, который связывает два уже созданных ресурса вместе.Поэтому мне не нужно передавать никакие сущности json в теле сообщения, мне просто нужны идентификаторы ресурсов, которые я передаю в URL.Это неправильная практика?поэтому в основном мой запрос сейчас представляет собой простой путь {cid} / projects / {projectID} / subcontractors / {subcontractorID}, и в методе post call я извлекаю идентификаторы ресурсов из пути и связываю их.Ответ является либо успешным, либо неудачным {"success": true}.Это неправильная практика?Есть ли лучший способ сделать это?

1 Ответ

0 голосов
/ 19 сентября 2018

Как вы будете разрабатывать свой API, зависит от вас.С технической точки зрения, запрос POST с пустой полезной нагрузкой вполне подходит.


Однако при условии, что вы намереваетесь добавить подрядчика к проект , я думаю, что это может быть лучше выражено с полезной нагрузкой:

POST /projects/1/contractors HTTP/1.1
Host: api.example.org
Content-Type: application/json

{ "contractorId": 100 }

Этот подход особенно полезен, если вам нужно управлять дополнительной информацией для этого подрядчика в этом проект .Если вышеуказанный запрос завершится успешно, ответ будет содержать код состояния 201 вместе с заголовком Location, который идентифицирует вновь созданный ресурс.

...