HTTP глагол для "перевода"

Я пишу веб-сервис REST, который переводит тексты с одного языка на другой. Текст может быть довольно большим, до нескольких мегабайт.

Какой HTTP-глагол лучше использовать?

Моей первой мыслью было использовать GET, потому что он переводит данный текст. Но ограничение длины 4K URL не подходит для больших текстов. Использование тела сообщения с GET не рекомендуется.

Моей второй мыслью было использование POST, чтобы я мог передать текст в теле запроса. Но это не похоже на дух HTTP. POST используется для создания вещей; он обновляет состояние сервера, в то время как в моем случае состояние не обновляется.

Какой глагол вы бы использовали?

NB Google Translate использует POST.

1 ответ

Решение

Я учусь POST, так как вижу PUT, PATCH, DELETE и т. Д. В качестве конкретных опций.

GET будет "подходящим", поскольку его источником является "GET заданный ресурс", например. получить мой перевод, основанный на некоторых данных, которые вы анализируете.

Однако я считаю, что можно утверждать, что перевод не существует, а просто сгенерирован, поэтому вы размещаете свою строку, а веб-служба создает переводы и возвращает ее. Также, как вы упоминаете, запросы GET блокируются длиной URL.

Другие вопросы по тегам