1. Utilisez votre utilisateur interne d’exercice
Connectez-vous à la base d’exercice avec l’utilisateur qui appellera l’API. Dans Notes de formation → Notes, vérifiez que cet utilisateur peut déjà lire les notes créées au jour 2.
La clé représentera exactement cet utilisateur. Si ses droits Odoo ne permettent pas de lire training.note, sa clé ne le permettra pas non plus. Une clé authentifie ; elle n’ajoute ni ACL ni règle sur les enregistrements.
2. Ouvrez vos propres préférences
Ne passez pas par la liste technique Paramètres → Clés API : elle sert à voir ou supprimer des clés existantes. Cliquez sur votre nom, en haut à droite, puis choisissez My Preferences ou Préférences, selon la langue de votre interface.
3. Générez la clé dans Odoo 19
Dans la fenêtre des préférences, ouvrez Security ou Sécurité. Dans la ligne API Keys, choisissez Add API Key ou Ajouter une clé API.
- Si Odoo vous le demande, confirmez votre mot de passe actuel.
- Saisissez la description Exercice API local · Jour 4.
- Pour la durée, choisissez 1 jour, puis cliquez sur Générer une clé.
- Copiez immédiatement la valeur affichée. Odoo ne vous la montrera pas une seconde fois.
Ne la placez pas dans notes_api.py, dans un autre fichier source, dans Git, dans une capture d’écran ou dans une réponse d’exercice. Gardez-la uniquement le temps des tests locaux. Si vous la perdez, supprimez cette clé et créez-en une nouvelle.
4. Comprenez l’option « Customers can generate API Keys »
Cette option n’autorise pas un visiteur anonyme à obtenir sa première clé. Elle permet à un utilisateur non administrateur, y compris un client Portal, de créer ou renouveler par programme une clé qui lui appartient déjà, en présentant une clé active.
La nouvelle clé reste liée au même utilisateur et ne lui accorde aucun droit supplémentaire. Sa durée reste limitée par les groupes de cet utilisateur. La création depuis ses propres Préférences → Sécurité est un autre mécanisme : c’est celui utilisé dans cet exercice, sans activer cette option.
- Un employé lance un script local d’import ou de reporting : il crée une clé courte pour son propre compte, puis le script lit uniquement les données auxquelles il a déjà accès.
- Un client Portal a une intégration serveur à serveur et possède déjà une clé active : si l’option est activée, son intégration peut générer une clé de remplacement avant son expiration, sans intervention d’un administrateur.
- Une application Vue dans le navigateur n’est pas ce cas d’usage : elle ne doit jamais recevoir ni créer une clé API. Le relais local du Jour 4 garde la clé côté serveur de développement.
5. Envoyez la clé dans l’en-tête
Remplacez YOUR_API_KEY par la clé que vous venez de créer, puis exécutez cette commande :
curl -i \
-H "Authorization: Bearer YOUR_API_KEY" \
http://localhost:8069/training/api/notesLa clé n’est pas à conserver dans le support, un fichier source ou Git. Après ce premier appel, l’étape suivante vous fera comparer une réponse acceptée et des réponses refusées.
Si Odoo indique qu’aucune base n’est sélectionnée
Le parcours normal suppose que votre serveur local expose une seule base d’exercice, qu’Odoo choisit automatiquement. Si vous avez volontairement plusieurs bases locales, ne devinez pas une solution dans les commandes : demandez à votre formateur quelle configuration d’hôte ou de dbfilter utilise votre environnement.
6. Comprenez l’analogie entre secret et vérificateur
Une analogie avec une paire de clés publique et privée peut aider, à condition d’en connaître la limite. La clé d’API est le secret privé du client : votre commande doit la conserver et la présenter à Odoo. De son côté, Odoo garde une représentation non récupérable qui lui permet de vérifier le secret reçu.
Il ne s’agit toutefois pas d’une véritable paire de clés cryptographiques asymétriques. Odoo ne vous remet ici ni clé publique ni certificat. L’analogie porte seulement sur la séparation entre le secret conservé par le client et le vérificateur conservé par le serveur.
Vous disposez maintenant d’une clé temporaire appartenant à l’utilisateur vérifié. L’étape suivante protège la route existante, lit les vraies notes avec cet utilisateur, puis compare un appel accepté à deux refus.