当前位置:  开发笔记 > 前端 > 正文

针对超长URI的REST最佳实践

如何解决《针对超长URI的REST最佳实践》经验,为你挑选了0个好方法。

我有REST服务,应该通过GET接收很长的查询.比方说,我想查询具有许多地理坐标的服务,以找出有关所有这些坐标的信息.

1)我的第一个想法是使用长URI并增加 servlet容器的最大URI长度.

它看起来像这样:

GET http://some.test/myresource?query={really big JSON object}

但是由于旧的代理服务器,似乎长度超过2 KB的URI是不可靠的(是吗?).

2)我的解决方法是首先通过POST创建临时资源,并使用此资源的URI作为实际GET请求中的参数.这看起来像这样:

POST http://some.test/temp
Request Body: {really big JSON object}

201 Created Location: http://some.test/temp/12309871

GET http://some.test/myresource?query=http://some.test/temp/12309871

3)使用GET请求的主体.我已经阅读了问题的答案,是否使用GET请求的主体进行查询是一个好主意,并且共识是:不.甚至罗伊菲尔丁说这是一个坏主意.

4)另一种方法可以是将POST解释为"创建查询结果资源"并在请求后删除该资源.但我认为这不是RESTful而是一个坏主意.

有没有更好的方法来处理GET请求的大查询?

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有