Полагаю, это зависит от того, как это предполагается использовать.
Если вы просто собираетесь что-то сделать, например, просто передать клиенту ВСЕ данные, необходимые для обновления объекта ВЕСЬ сотрудник, тогда вам нужно будет предоставить только одну конечную точку, и вы можете просто сделать ...
domain/employee/{employee_id}
Как объяснил @taylonr. Это более вероятный сценарий для API, который вы предоставляете третьим лицам. Причина, по которой вы создадите такой метод, заключается в том, что он позволяет третьим сторонам создавать свои собственные функции для обновления всего ресурса; а затем передать это вам. Другими словами, наличие всего доступного ресурса - хороший улов для всех; но, вероятно, не самый лучший, если вы используете его для собственного веб-приложения.
Но, если это серверная часть веб-приложения, и вы собираетесь сделать что-то связанное; но не требует знания всей информации для выполнения предполагаемого действия, тогда вы можете следовать такой парадигме:
domain/employee/{employee_id}/action
Так, например, когда я проголосовал за ваш пост, пост, который Stackoverflow использует под капотом, был ....
noun noun verb verb
| | | |
| | | |
http://stackoverflow.com/posts/8478829/vote/2
Причина, по которой это делается таким образом, заключается в том, что все, что вам нужно, это URL и информация о сеансе (ваш аутентифицированный объект на стороне сервера), и вы можете делать все, что вам нужно.
Вы сказали, что
Мое другое беспокойство заключается в том, что кажется нелегким отправлять объект с заполненными только определенными полями, потому что схема для этого объекта требует, чтобы все поля были заполнены, а пропуск полей только для поддержки POST. И. е. для поддержки операций или обхода без схем потребовались бы отдельные схемы - ни одна из них не кажется правильной.
но я не думаю, что это серьезная проблема. Вместо того, чтобы полагаться на то, что клиент передаст всю информацию для объекта, который он хотел бы обновить, вы просто используете часть «существительное» - posts/8478829
= и разрешите сторону сервера ресурсов.