ОТДЫХ и ПОЛУЧИТЬ ... снова - PullRequest
8 голосов
/ 26 января 2012

Вообще говоря, сообществу REST не нравятся сложные данные в запросах GET. Интересно, есть ли хороший принцип, стоящий за этим, или это просто ограничение ограничений (произвольной длины URL) для словарей GET?

Я доволен соответствием между URL-адресами и ресурсами, но почему мои запросы GET не могут принимать сложные данные в теле запроса, в формате json или xml (что разрешено спецификацией HTTP)?

Смысл GET, как я понял, заключался в том, что запросы GET сигнализируют о том, что они не изменяют состояние сервера. Это кажется ортогональным к сложности запроса. Тем не менее, многие люди предлагают, чтобы сложные запросы создавались с помощью PUT или POST, а затем упоминались в GET.

Похоже, это поднимает соглашение (об отсутствии тел по запросам GET) до статуса принципа с неблагоприятными побочными эффектами: необходимость поддерживать состояние другого объекта, который не заслуживает того, чтобы быть ресурсом его собственные - это запрос.

Но, возможно, есть какой-то другой принцип, который мне не хватает - я приветствую ваши комментарии!

1 Ответ

4 голосов
/ 26 января 2012

Страх состоит в том, что существующие веб-посредники отбросят ваше тело GET.К счастью, новые спецификации httpbis изменили текст на get body и сделали его немного менее пугающим.Лично я сам рассматриваю возможность использования get с телами, потому что хочу регистрировать небезопасные запросы, и на данный момент у меня нет простого способа определить, безопасен ли POST или нет.Если у вас есть контроль над компонентами, которые находятся между вашим пользовательским агентом и исходным сервером, тогда я говорю, продолжайте, используйте GET с телами.

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