Seb*_*ber 13 java api get http elasticsearch
我正在设计一个API,我想知道在GET请求上发送JSON有效负载是否合适?
在这个其他问题的HTTP请求方法的有效载荷,我们可以根据这个链接找到:
这是否意味着我不应该发送带有效负载的GET请求? 这样做有风险吗?
我发现ElasticSearch在GET请求上使用了这样的有效负载:
$ curl -XGET 'http://localhost:9200/twitter/tweet/_search?routing=kimchy' -d '{
"query": {
"filtered" : {
"query" : {
"query_string" : {
"query" : "some query string here"
}
},
"filter" : {
"term" : { "user" : "kimchy" }
}
}
}
}
'
Run Code Online (Sandbox Code Playgroud)
因此,如果这个受欢迎的图书馆没有人抱怨,那么也许我可以做同样的事情吗?
顺便说一句,我想知道混合queryString参数和JSON有效负载是否可行?就像这个ElasticSearch查询一样.如果是这样,是否有规则,以便我们知道哪些参数应该是queryString参数或有效负载参数?
在这里我们可以阅读: 带有请求体的HTTP GET
罗伊菲尔丁关于将一个机构纳入GET请求的评论.
是.换句话说,任何HTTP请求消息都允许包含消息体,因此必须解析消息.但是,GET的服务器语义受到限制,使得正文(如果有的话)对请求没有语义含义.解析的要求与方法语义的要求是分开的.
所以,是的,你可以使用GET发送一个正文,不,这样做永远不会有用.
这是HTTP/1.1的分层设计的一部分,一旦规范被分区(正在进行中),它将再次变得清晰.
罗伊....
然后我真的不明白为什么它永远不会有用,因为在我看来,将复杂的查询发送到服务器上是不合适的,这些查询不适合queryParam或matrixParam.我认为ElasticSearch API设计师的想法是一样的......
我打算设计一个可以这样调用的API:
curl -XGET 'http://localhost:9000/documents/inbox?pageIndex=0&pageSize=10&sort=title'
curl -XGET 'http://localhost:9000/documents/trash?pageIndex=0&pageSize=10&sort=title'
curl -XGET 'http://localhost:9000/documents/search?pageIndex=0&pageSize=10&sort=title' -d '{
"someSearchFilter1":"filterValue1",
"someSearchFilter2":"filterValue2",
"someSearchFilterList": ["filterValue3","xxx"]
... a lot more ...
}
'
Run Code Online (Sandbox Code Playgroud)
你觉得好吗?基于以上考虑.
| 归档时间: |
|
| 查看次数: |
16586 次 |
| 最近记录: |