Может ли PUT выполнить слияние с объектом без использования пользовательской операции PUT? - PullRequest
0 голосов
/ 26 сентября 2019

Я хотел бы реализовать запрос PUT, который объединяет данные.Например:

У меня есть объект Article, где свойство content равно "Lorem Ipsum. ", и когда я выполняю PUT для этого объекта с content = "Hey !", я хотел бы получить конечный результатбыть "Lorem Ipsum. Hey !".

Можно ли обойтись без пользовательской операции PUT?

Ответы [ 2 ]

0 голосов
/ 27 сентября 2019

Я хотел бы реализовать запрос PUT, который объединяет данные.

К сожалению, это не то, что означает PUT ;Таким образом, у вас есть две проблемы - во-первых, потому что вы не используете стандартное значение для PUT, вам придется создать свою собственную реализацию на заказ.Во-вторых, компоненты общего назначения не будут знать о вашем угоне семантики PUT, поэтому вы оставляете себя незащищенным - любая потеря собственности будет связана с нарушением вами семантики.

Гораздо лучше использоватьPUT для PUT и используйте что-то еще (POST, PATCH ), когда вы хотите объединить .

Существует зарегистрированный метод MERGE ;является частью спецификации WebDAV.Вы можете просмотреть эту спецификацию, чтобы убедиться, что определенная семантика близка к вашей.

0 голосов
/ 26 сентября 2019

Даже если это невозможно с помощью стандартного PUT, вы всегда можете написать обертку, чтобы сделать это для вас:)

public void PutWithConcatenation(string contentToConcatenate)
{
    // use GET request here
    string articleContent = GetArticle().content;
    string concatenatedContent = articleContent + contentToConcatenate;

    // use PUT request here
    UpdateArticle(concatenatedContent);
}

PutWithConcatenation("Hey!");

```
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...