Descrição
O servidor HTTP (actix-web) atualmente expõe apenas um endpoint: GET /keys. Não há endpoints para criar, atualizar, deletar ou escanear chaves, limitando severamente a utilidade da API.
Localização
Arquivo: src/api/mod.rs
// Apenas este endpoint:
// GET /keys
// Faltam:
// PUT /keys/{key} — set
// GET /keys/{key} — get
// DELETE /keys/{key} — delete
// GET /keys?prefix= — scan com prefixo
// GET /stats — estatísticas
Endpoints necessários
Mínimos para um CRUD funcional:
| Método |
Path |
Descrição |
PUT |
/keys/{key} |
Inserir/atualizar valor (body: valor) |
GET |
/keys/{key} |
Obter valor de uma chave |
DELETE |
/keys/{key} |
Remover uma chave |
GET |
/keys |
Listar chaves (suporta ?prefix= e ?limit=) |
Estendidos (recomendado):
| Método |
Path |
Descrição |
GET |
/stats |
Estatísticas do engine |
POST |
/admin/compact |
Forçar compaction |
POST |
/admin/flush |
Forçar flush do memtable |
Proposta de implementação
- Extrair lógica para handler functions separadas em
src/api/handlers.rs
- Usar
web::resource ou web::scope para organizar as rotas
- Integrar com o
Engine armazenado no estado da aplicação
- Adicionar testes de integração para a API (usando
actix_web::test)
- Documentar os endpoints no
docs/
Critérios de aceite
Descrição
O servidor HTTP (actix-web) atualmente expõe apenas um endpoint:
GET /keys. Não há endpoints para criar, atualizar, deletar ou escanear chaves, limitando severamente a utilidade da API.Localização
Arquivo:
src/api/mod.rsEndpoints necessários
Mínimos para um CRUD funcional:
PUT/keys/{key}GET/keys/{key}DELETE/keys/{key}GET/keys?prefix=e?limit=)Estendidos (recomendado):
GET/statsPOST/admin/compactPOST/admin/flushProposta de implementação
src/api/handlers.rsweb::resourceouweb::scopepara organizar as rotasEnginearmazenado no estado da aplicaçãoactix_web::test)docs/Critérios de aceite
PUT /keys/{key}com body cria/atualiza chaveGET /keys/{key}retorna valor ou 404DELETE /keys/{key}deleta chaveGET /keys?prefix=fooretorna chaves com prefixoGET /keys?limit=10respeita limitecargo test --all-featurespassacargo clippy -- -D warningspassa