首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用POST而不是GET实现多搜索条件查询可以接受吗?

使用POST而不是GET实现多搜索条件查询可以接受吗?
EN

Stack Overflow用户
提问于 2018-01-11 23:49:12
回答 2查看 124关注 0票数 0

我有一个异构的资源集合,我需要在这些集合上支持多个搜索条件。因为使用查询字符串的URL有限制,所以我想使用HTTP POST而不是GET来实现它

因此,不是

代码语言:javascript
复制
HTTP GET /states/, HTTP GET /cities, HTTP GET /localities

我正在考虑将其实现为

代码语言:javascript
复制
HTTP POST /searchengine with the body as 

{
"state" : "xxx",
"city": "yyy"
"locality", "zzz"
}

并返回结果作为对HTTP POST的响应

因此,我的问题是,是否可以接受POST而不是GET作为RESTful?

如果搜索结果可以响应HTTP POST (使用HTTP 200)发送,或者搜索结果是否应该由Location头指示(使用HTTP 3xx)?

EN

回答 2

Stack Overflow用户

发布于 2018-01-11 23:52:20

做对你的应用程序最有意义的事情。

通过HTTP GET搜索结果可能很方便,因为它们允许用户共享这些URL(如果需要)。但是GET确实达到了您提到的查询字符串限制。

如果切换到HTTP POST是您需要做的,那么就这么做吧。你的问题没有单一的技术答案--一个不一定比另一个更好或更差。

票数 1
EN

Stack Overflow用户

发布于 2018-01-14 01:50:49

在我看来,使用POST请求来检索资源是不可靠的。POST请求的语义在RFC 7231 4.3.3中进行了解释,这里提到的情况都不适用于您的用例。

你应该考虑定义一种新的资源类型,比如搜索结果。关于URI的长度,可以看看RFC 7230 3.1.1,它讨论了发送者和接收者应该支持的建议请求行长度。根据你的例子,我想知道你的情况是否真的有问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48210979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档