Authentification
Chaque requête transmet votre clé API dans un en-tête. Les clés sont des secrets : gardez-les sur votre serveur.
Envoyer votre clé
Envoyez la clé dans l’en-tête Authorization avec le schéma Bearer, ou dans l’en-tête X-Api-Key. N’en envoyez qu’un seul : une requête qui contient les deux est rejetée.
GET /v1/drugs?country=ca&q=metformin
Host: api.medifontis.com
Authorization: Bearer mf_live_…
GET /v1/drugs?country=ca&q=metformin
Host: api.medifontis.com
X-Api-Key: mf_live_…
Format des clés
Les clés commencent par mf_live_, suivi de 64 caractères hexadécimaux. Medifontis ne stocke qu’une empreinte SHA-256 de votre clé et ne peut donc pas vous la montrer à nouveau : copiez-la au moment de sa création.
Gardez vos clés secrètes
- Appelez l’API depuis votre backend, jamais depuis du JavaScript exécuté dans le navigateur ni depuis une application mobile.
- Stockez la clé dans une variable d’environnement ou un gestionnaire de secrets, et non dans votre dépôt de code.
- Utilisez une clé par application, afin de pouvoir en remplacer une sans toucher aux autres.
Relayer les requêtes de votre frontend
Pour un champ de recherche dans une page web, transmettez la recherche via votre propre endpoint, qui ajoute la clé :
// Express: the browser calls /api/medicines, your server calls Medifontis.
app.get('/api/medicines', async (request, response) => {
const params = new URLSearchParams({ country: 'ca', 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())
})
Remplacer ou révoquer une clé
Vous pouvez créer une nouvelle clé à tout moment depuis la page d’inscription. Pour révoquer une clé que vous n’utilisez plus, écrivez-nous depuis la page de contact. Contactez-nous.
Erreurs d’authentification
-
401La clé est manquante, mal formée, révoquée ou expirée, ou les deux en-têtes ont été envoyés. -
403La clé est valide mais ne permet pas cette recherche.