Я вижу загадку.С одной стороны, вы хотели бы остаться верным и не указывать имена действий (изменить, обновить и т. Д.) В своем URI, а с другой стороны, это специальная процедура, а на самом деле не совсем PATCH.
Итак, для этой статьи я проделал определенную работу, чтобы позволить определению действия по типу отправленного сообщения, даже создал способ сделать это в Web API.
Пример кодаэто здесь .
По существу вы выставляете их как POST или PUT (в зависимости от того, являются ли они идемпотентными или нет), и у ресурса будет несколько POST или PUT против него.Например:
GET /api/InventoryItem [gets all items]
GET /api/InventoryItem/{id} [gets detail of a single item]
POST /api/InventoryItem [creates an item]
POST /api/InventoryItem/{id}* [checks in stock items to the inventory]
POST /api/InventoryItem/{id}* [removes stock items from the inventory]
PUT /api/InventoryItem/{id} [renames an item]
DELETE /api/InventoryItem/{id} [de-activates an item]
Это единственное решение, которое у меня было до сих пор для этих типов ресурсов.
UDPATE
Существенно, вы бы выставили это как PUT (так какЯ полагаю, что это идемпотент) при api/accounts/id
отправке полезной нагрузки, обозначающей тип сообщения:
PUT api/accounts/id
{"detailBatchStateChange": "hold"}