Estou fazendo um GET de uma API do elasticsearch trazendo os campos de um índice elasticsearch. No exemplo abaixo o json retornado é do indice "products" e tenho que capturar num array o nome dos campos (ex: CATEGORY, END_DATE, etc)
#"products" é o nome do indice, esta string altera-se conforme o indice buscado.
{
"products": {
"mappings": {
"properties": {
"CATEGORY": {
"type": "keyword"
},
"END_DATE": {
"type": "date",
"format": "[yyyyMMdd]"
},
"PRICE": {
"type": "double"
},
"PRODUCT": {
"type": "keyword"
},
"START_DATE": {
"type": "date",
"format": "[yyyyMMdd]"
}
}
}
}
}
const getIndexFields2 = () =>{
//nesta url fixa o indice alvo está representado como "products", será dinâmico futuramente, talvez via parâmetro de função
return fetch(`http://localhost:9200/products/_mapping/?format=json`)
.then(resposta =>{ return resposta.json() })
.then(data=>{
//Objects.entries(data.{nome_do_indice_recebido_aqui}.mappings.properties)
const camposIndice = Object.entries(data.products.mappings.properties)
console.log(camposIndice)
})
}
Notem no exemplo básico acima que na variável camposIndice o "products" poderá ser um valor que pretendo determinar na hora, então deve ser mudado dinamicamente conforme o nome do indice que irei indicar, há um meio de fazer esta substituição? tentei colocar um variavel, mas como se espera um objeto ali então não aceita.