Мне нужно вызвать эластичную поисковую систему напрямую из шлюза API, используя http-соединение, например.
https: //// _ doc / _search? Pretty & filter_path = hit.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,