Documentação / Primeiros passos

Autenticação

Toda requisição leva sua chave de API em um cabeçalho. As chaves são secretas: mantenha-as no seu servidor.

Envie sua chave

Envie a chave no cabeçalho Authorization com o esquema Bearer ou no cabeçalho X-Api-Key. Envie exatamente um deles: uma requisição com os dois é rejeitada.

Token Bearer
GET /v1/drugs?country=br&q=dipirona%20sodica
Host: api.medifontis.com
Authorization: Bearer mf_live_…
X-Api-Key
GET /v1/drugs?country=br&q=dipirona%20sodica
Host: api.medifontis.com
X-Api-Key: mf_live_…

Formato da chave

As chaves começam com mf_live_, seguido de 64 caracteres hexadecimais. O Medifontis armazena apenas um hash SHA-256 da sua chave, por isso não consegue exibi-la de novo: copie-a ao criá-la.

Mantenha as chaves em segredo

  • Chame a API a partir do seu backend, nunca de JavaScript no navegador nem de um aplicativo móvel.
  • Armazene a chave em uma variável de ambiente ou em um gerenciador de segredos, e não no controle de versão.
  • Use uma chave por aplicação, para poder substituir uma sem mexer nas outras.

Use um proxy para as requisições do seu frontend

Para uma caixa de busca em uma página web, encaminhe a busca por um endpoint próprio que adicione a chave:

Node.js
// Express: the browser calls /api/medicines, your server calls Medifontis.
app.get('/api/medicines', async (request, response) => {
  const params = new URLSearchParams({ country: 'br', q: String(request.query.q || '') })
  const upstream = await fetch(`https://api.medifontis.com/v1/drugs?${params}`, {
    headers: { Authorization: `Bearer ${process.env.MEDIFONTIS_API_KEY}` },
  })
  response.status(upstream.status).json(await upstream.json())
})

Substituir ou revogar uma chave

Você pode criar uma nova chave na página de cadastro a qualquer momento. Para revogar uma chave que não usa mais, escreva para nós pela página de contato. Fale conosco.

Erros de autenticação

  • 401 A chave está ausente, malformada, revogada ou expirada, ou os dois cabeçalhos foram enviados.
  • 403 A chave é válida, mas não permite esta busca.