Olá, boa tarde.
Estou tentando integrar o Elasticsearch a um aplicativo React, e pela quantidade de informações a respeito, não sei se é possivel faze-lo.
O maior problema é que o aplicativo não possui um BackEnd (estamos usando firebase temporariamente), então a comunicação teria que ser feita diretamente ao Elastic Cloud.
Entrei em contato com o suporte, e me recomendaram o App Search, mas pelo que entendi, é necessário hospeda-lo em algum lugar ou fazer a assinatura de um dos pacotes.
É possivel integrar o Elastic Cloud diretamente ao Front End?
Oi @Renato_Razal,
É possível sim, basta que você habilite o CORS no seu deployment. Na documentação do Elasticsearch você pode encontrar as opções mas uma configuração simples seria:
http.cors.enabled: true
http.cors.allow-origin: "http://HOST-PERMITIDO"
Opa @luiz.santos, boa tarde.
Eu cheguei a ver esse trecho da documentação, mas ele diz que é necessário um arquivo de configuração ou alterar diretamente na API via esse metodo.
Eu tentei alterar direto pelo painel, mas de todos os modos que tentei obtive esse resultado:
{
"status": 400,
"error": {
"root_cause": [
{
"reason": "persistent setting [http.cors.allow-origin], not dynamically updateable",
"type": "illegal_argument_exception"
}
],
"type": "illegal_argument_exception",
"reason": "persistent setting [http.cors.allow-origin], not dynamically updateable"
}
}
Exemplo de requisição:
PUT /_cluster/settings
{
"persistent": {
"http.cors.enabled": true,
"http.cors.allow-origin": "*"
}
}
Oi Renato,
Essas configurações não podem ser alteradas dinamicamente usando a API _cluster
. Você precisa seguir as orientações da documentação da Elastic Cloud para adicionar as user settings overrides.
1 Like
Opa @luiz.santos, muito obrigado, consegui configurar o CORS.