#rest #sprin&-rest
#rest #sprin&-rest
Вопрос:
Я передаю объект запроса и переменные path в моем методе http PUT для обновления записи. Можно ли передавать дополнительные данные (например, временную метку) в качестве параметров запроса, которые я хочу сохранить в окончательной записи, имеющей дополнительное поле (скажем, временную метку) по сравнению с объектом запроса?
Ответ №1:
Можно ли передавать дополнительные данные (например, временную метку) в качестве параметров запроса, которые я хочу сохранить в окончательной записи, имеющей дополнительное поле (скажем, временную метку) по сравнению с объектом запроса?
Краткий ответ: вероятно, это означает не то, что вы думаете.
Можно ли использовать параметры запроса в запросе PUT? Абсолютно. Параметры запроса — это просто еще одна часть идентификатора ресурса.
/15f3221f-ee3b-4155-bc75-f80855a9187e/abc
/15f3221f-ee3b-4155-bc75-f80855a9187e?abc
Это два разных идентификатора ресурса, и компьютеры не будут предполагать, что они идентифицируют один и тот же ресурс, но все методы http, которые будут применяться к одному, будут также применяться к другому и означать одно и то же.
В этом нет ничего волшебного abc
конечно, вы могли бы использовать там временную метку
/15f3221f-ee3b-4155-bc75-f80855a9187e?1970-01-01
Изменение временной метки изменяет идентификатор; что касается компонентов общего назначения, то в следующих двух примерах идентифицируются разные ресурсы
/15f3221f-ee3b-4155-bc75-f80855a9187e?1970-01-01
/15f3221f-ee3b-4155-bc75-f80855a9187e?1970-01-02
Вы могли бы представить их как две разные страницы настольного календаря. Изменение списка встреч в вашем документе 1970-01-02 вообще не должно изменить ваш календарь на 1970-01-01.
Метаданные о представлении обычно встраиваются в само представление (например, элемент HEAD в HTML-документе) или в заголовки HTTP. Насколько я могу судить, у нас нет стандартизированного заголовка, который соответствовал бы семантике, которую вы хотите.
Все, что сказано: сервер имеет БОЛЬШУЮ свободу в том, как он интерпретирует запрос на обновление представления /15f3221f-ee3b-4155-bc75-f80855a9187e?1970-01-02
. Например, обновление этого ресурса может также обновить представления многих других ресурсов.
(Однако имейте в виду кэширование — существует лишь ограниченное количество способов сообщить клиенту общего назначения, что некоторые кэшированные представления были признаны недействительными в результате запроса.)