HTTP глагол для "перевода"
Я пишу веб-сервис REST, который переводит тексты с одного языка на другой. Текст может быть довольно большим, до нескольких мегабайт.
Какой HTTP-глагол лучше использовать?
Моей первой мыслью было использовать GET, потому что он переводит данный текст. Но ограничение длины 4K URL не подходит для больших текстов. Использование тела сообщения с GET не рекомендуется.
Моей второй мыслью было использование POST, чтобы я мог передать текст в теле запроса. Но это не похоже на дух HTTP. POST используется для создания вещей; он обновляет состояние сервера, в то время как в моем случае состояние не обновляется.
Какой глагол вы бы использовали?
NB Google Translate использует POST.
1 ответ
Я учусь POST, так как вижу PUT, PATCH, DELETE и т. Д. В качестве конкретных опций.
GET будет "подходящим", поскольку его источником является "GET заданный ресурс", например. получить мой перевод, основанный на некоторых данных, которые вы анализируете.
Однако я считаю, что можно утверждать, что перевод не существует, а просто сгенерирован, поэтому вы размещаете свою строку, а веб-служба создает переводы и возвращает ее. Также, как вы упоминаете, запросы GET блокируются длиной URL.