'translate' 的 HTTP 动词

HTTP verb for 'translate'

我正在编写一个 REST 网络服务,将文本从一种语言翻译成另一种语言。文本可以相当大,最多几兆字节。

最好使用什么 HTTP 动词?

我的第一个想法是使用 GET,因为它 获取 给定文本的翻译。但是 4K URL 长度限制不适用于大文本。使用 GET 的消息体是 discouraged.

我的第二个想法是使用 POST 这样我就可以在请求正文中传递文本。但似乎并不符合HTTP的精神。 POST用于创造事物;它更新服务器的状态,而在我的情况下没有更新状态。

你会用什么动词?

N.B。 Google 翻译使用 POST.

我正在向 POST 学习,因为我将 PUT、PATCH、DELETE 等视为特定选项。

GET 将是 'appropriate',因为它的来源是 "GET a given resource",例如。根据您解析的一些数据获取我的翻译。

但是我相信可以争论,翻译不存在,而只是生成,因此您 POST 您的字符串,网络服务创建翻译,returns 它。另外,正如您提到的,GET 请求被 URL 长度阻止。