无法为GET编码REST请求(URL太长)

fek*_*lee 21 api rest search http-headers x-http-method-override

例:

问题:搜索词可能太长,以至于它破坏了Web服务器的最大URL长度.

如何允许极长的搜索条件并保持RESTful状态?

fek*_*lee 34

为了获得灵感,我只看了谷歌翻译的API v2,它是"使用RESTful调用样式".

当然,要翻译的文本可能很长.因此谷歌可选择允许发送请求POST,但有一个扭曲:

要使用POST,您必须使用X-HTTP-Method-Override标头告诉Translate API将请求视为GET(使用X-HTTP-Method-Override: GET).

因此,可以将请求语义转换POSTGET请求.

(这个发现让我在我的问题中添加了标签.)


smc*_*mcg 0

如果您的查询太长以至于超过了最大长度(浏览器的实际长度是 2000 个字符,但对于其他访问 REST API 的方式来说可能会更高),那就太糟糕了。

如果用户可以传入那么多数据,那么它应该放在请求正文/数据字段中,而不是 URL 中。