API de Indexação (Elasticsearch)
Esta API serve como uma interface para interagir com um cluster Elasticsearch. Ela abstrai as operações comuns de gerenciamento de índices (bancos de dados do ES), documentos (registros) e a execução de pesquisas. Todas as rotas operam sob o prefixo /lbes.
Nota – Autenticação Todos os endpoints descritos abaixo requer autenticação via JWT.
Para acessá-los, é necessário enviar um token de autorização no cabeçalho da requisição:Authorization: Bearer <seu_token_jwt>
Saúde e Utilitários do Cluster
Endpoints para obter informações gerais e realizar verificações no cluster Elasticsearch.
1. Obter Status de Saúde do Cluster
Verifica a saúde e o status geral do cluster Elasticsearch.
Endpoint:
GET /lbes/indexes/_health
2. Listar Todos os Índices
Retorna uma lista de todos os índices existentes no cluster.
Endpoint:
GET /lbes/indexes/_all
3. Validar JSON para Indexação
Endpoint de utilidade para verificar se um JSON é válido para ser indexado no Elasticsearch.
Endpoint:
POST /lbes/saves
Corpo da Requisição (application/json):
O objeto JSON que você deseja validar.
Gerenciamento de Índices
Operações que afetam um índice como um todo (criação, exclusão, reindexação, etc.).
4. Criar um Índice com Configurações
Cria um novo índice com mappings (schema) e settings (configurações) personalizados.
Endpoint:
POST /lbes/:index/_config
Corpo da Requisição (application/json):
{
"settings": {
"number_of_shards": 1,
"number_of_replicas": 0
},
"mappings": {
"properties": {
"titulo": { "type": "text" },
"autor": { "type": "keyword" },
"ano_publicacao": { "type": "integer" }
}
}
}
5. Criar um Índice Simples
Cria um novo índice com as configurações padrão do Elasticsearch.
Endpoint:
POST /lbes/saveindex/:index
6. Obter Informações de um Índice
Retorna as configurações e os mappings de um índice específico.
Endpoint:
GET /lbes/:index
7. Obter Mappings de um Índice
Retorna apenas os mappings (schema) de um índice.
Endpoint:
GET /lbes/:index/mappings
8. Obter Configurações de um Índice
Retorna apenas as settings (configurações) de um índice.
Endpoint:
GET /lbes/:index/settings
9. Reindexar Dados
Copia documentos de um índice antigo para um novo. Útil para aplicar novos mappings ou settings.
Endpoint:
POST /lbes/reindex/:oldindex/:newindex
10. Deletar um Índice
Operação Destrutiva
Esta ação remove permanentemente um índice e todos os documentos contidos nele. Use com extremo cuidado.
Endpoint:
DELETE /lbes/:index
Gerenciamento de Documentos
Operações para criar, ler, atualizar, deletar e pesquisar documentos dentro de um índice.
11. Inserir ou Atualizar um Documento (Upsert)
Cria um novo documento ou atualiza um existente se o ID já for fornecido.
Endpoint:
POST /lbes/:index/doc/:id
Corpo da Requisição (application/json):
O documento JSON a ser salvo.
{
"titulo": "A Arte da Guerra",
"autor": "Sun Tzu",
"ano_publicacao": -500
}
12. Inserir um Documento (ID Opcional)
Insere um novo documento. O ID pode ser fornecido como parâmetro de query; se omitido, o Elasticsearch gerará um automaticamente.
Endpoint:
POST /lbes/:index/doc?id=<id_opcional>
13. Buscar Documento por ID
Recupera um único documento com base no seu ID.
Endpoint:
GET /lbes/:index/doc/:id
14. Listar Documentos de um Índice
Retorna uma lista paginada de documentos de um índice.
Endpoint:
GET /lbes/:index/doc
15. Pesquisar Documentos
Executa uma busca complexa usando a Query DSL (Domain Specific Language) do Elasticsearch.
Endpoint:
POST /lbes/:index/search
Corpo da Requisição (application/json):
Um objeto de busca do Elasticsearch.
{
"query": {
"match": {
"autor": "Sun Tzu"
}
}
}
16. Deletar um Documento
Remove um documento específico de um índice com base no seu ID.
Endpoint:
DELETE /lbes/:index/doc/:id