Do campo de busca ao registro#
Para uma interface de catálogo, envie o texto do usuário como q em Search e apresente a lista devolvida. A busca por substring permite explorar registros relacionados ao texto; não prova que a primeira linha seja uma identidade correta. Deixe o usuário inspecionar forma e evidência antes de escolher um registro.
// Run on your server. Keep the API key out of browser bundles.
const url = new URL("/v1/medications/search", process.env.IABULA_API_BASE);
url.search = new URLSearchParams({ q: "dipirona", limit: "20" });
const response = await fetch(url, {
headers: { "X-API-Key": process.env.IABULA_API_KEY },
});
const page = await response.json();
if (!response.ok) throw new Error(`${response.status}: ${page.code}`);
console.log(page.data, page.next_cursor);Evite misturar páginas de consultas diferentes#
Ao trocar o nome pesquisado, descarte next_cursor e resultados anteriores. Preserve os filtros ao carregar a página seguinte e passe o cursor de forma opaca. Em uma interface de autocomplete, limite o tamanho da entrada, aplique debounce e cancele requisições antigas no seu cliente.
Detalhes e ausência de resultados#
Use o UUID devolvido em GET /v1/medications/{id}. Trate campos nulos e listas vazias sem completar informação por suposição. Se data estiver vazia, informe que a consulta não encontrou registros na cobertura atual; não conclua que o produto não existe ou não possui registro regulatório.