Как правильно использовать REST, когда надо передать много данных в GET?
Есть некий сервис-шаблонизатор, ему можно передать ряд параметров, которыми он заменит соответствующие плейсхолдеры в шаблоне. С одной строны, получение сгенерированной страницы - это GET запрос. Но что, если у меня так много параметров, что их не уместить в URL? Использовать POST? По-идее это некорректно. Да и вообще запрос с кучей параметров в URL'е выглядит неважно.
Недавно на хабре было интересное обсуждение про REST и в комментариях мне понравился один вариант.
Применительно к вашему случаю получится примерно так:
Запрос:
POST /TemplateVariant
{
[много параметров]
}
Ответ:
201 Created
Location: /TemplateVariant/58f523a2-79c1-475e-98ac-2e6dfa43abcc
Запрос №2:
GET /TemplateVariant/58f523a2-79c1-475e-98ac-2e6dfa43abcc
8bitjoey: Можно хранить не сгенерированный контент, а переданные параметры (ну и генерировать каждый раз при соответствующем GET) и соответствующий им ID. Но при таком подходе какое-то хранилище все равно нужно, да.
Ещё можно не использовать REST, а глянуть в сторону XML-RPC\JSON-RPC. Это не так модно как REST, но задача «нормально передать кучу параметров и сразу получить ответ» там решается намного красивее)