【发布时间】:2019-02-25 19:58:42
【问题描述】:
我需要使用 http 连接直接从 api 网关调用弹性搜索引擎。
https:////_doc/_search?pretty&filter_path=hits.hits._source
我在弹性搜索引擎中有 n 个订单,我想使用 get 查询来获取这些订单,但我只想要我发布的 json 数组并且不想要响应中的任何其他信息。我该怎么做?
例如。
这就是我得到的:
{
"hits" : {
"hits" : [
{
"_index" : "gpss_orders",
"_type" : "_doc",
"_id" : "4867254",
"_score" : 1.0,
"_source" : {
"orderId" : 4867254,
"loadId" : 18214,
"orderTypeId" : 1
}
]
}
}
但我想要这样的回应:
[ {
"orderId" : 4867254,
"loadId" : 18214,
"orderTypeId" : 1
}]
我需要更改 api 网关方法响应吗?
我更改了 api 网关方法响应模板并得到了预期的结果
#set($esOutput = $input.path('$.hits.hits'))
#set($orders = [])
#foreach( $elem in $esOutput )
#set($order = $elem["_source"])
#set($response = $orders.add($order) )
#end
$orders
但现在我面临的问题是,虽然来自弹性搜索引擎的响应是正确的 json,但方法集成模板更新后的响应变成这样,没有任何大括号:
[{orderId=4867254, loadId=18214, orderTypeId=1, orderTypeName=Fuel}]
弹性搜索的响应:
"took" : 1,
"hits" : {
"hits" : [
{
"_id" : "4867254",
"_score" : 1.0,
"_source" : {
"orderId" : 4867254,
"loadId" : 18214,
"orderTypeId" : 1,
【问题讨论】:
标签: amazon-web-services elasticsearch aws-api-gateway