Skip to content

[openaudit-search-api] Implementar endpoint GET /search completo (SearchResponse) + validação do contrato #9

Description

@4lessandrodev

Repo: openaudit-search-api

Tags: priority:high type:feature area:api area:search

Visão geral

Entregar o endpoint principal do MVP: busca retorna lista de candidatos com confidence e explanation, além de metadados do catálogo.

Contexto

A Fase 1 do roadmap depende deste endpoint para desambiguação humana. Deve ser rápido, auditável e não acusatório.

Descrição

Implementar GET /search conforme core-contracts:

  • Entradas:
    • q obrigatório, limit/offset opcionais.
  • Processamento:
    • normalizar query, gerar hash.
    • consultar CatalogClient (SQLite FTS5).
    • montar candidates[].
    • preencher catalog com name/version/snapshot_id/source (lidos do catalog_meta.json).
  • Saída:
    • JSON SearchResponse com query.normalized, query.hash, catalog, candidates.
  • Headers:
    • X-Request-Id, X-Catalog-Version, X-Cache.

Regras:

  • confidence e explanation devem existir para cada candidato (mesmo que simples no MVP).
  • Não incluir linguagem acusatória.
  • Não incluir query.raw por padrão.

Impacto

Viabiliza UI e seleção de candidato. Sem isso, o ecossistema não sai do papel.

Referências

Definição de pronto

  • /search implementado e retornando SearchResponse
  • Response valida contra JSON Schema (em test/dev)
  • Headers retornados corretamente
  • Testes de integração cobrindo casos: termo comum, termo sem resultado, paginação

Metadata

Metadata

Assignees

No one assigned

    Type

    Fields

    No fields configured for Task.

    Projects

    Status
    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions