Mini-application Python démontrant la consommation de l'API REST Confluence à travers 2 exemples concrets, dans le cadre du stage.
confluence_2_exemples/
├── config.py # Chargement de la configuration (.env)
├── confluence_client.py # Classe ConfluenceClient : tous les appels API
├── exemple1_lister_espaces_et_pages.py # Exemple 1 : GET + GET enchaînés
├── exemple2_rechercher_et_creer_page.py # Exemple 2 : GET + POST
├── requirements.txt # Dépendances Python
├── .env.example # Modèle de fichier de configuration
└── README.md
# 1. Se placer dans le dossier du projet
cd confluence_2_exemples
# 2. (Recommandé) Créer un environnement virtuel
python3 -m venv venv
source venv/bin/activate # sous Linux/Mac
venv\Scripts\activate # sous Windows
# 3. Installer les dépendances
pip install -r requirements.txt- Va sur https://id.atlassian.com/manage-profile/security/api-tokens
- Clique sur "Create API token", donne-lui un nom (ex: "stage-app"), copie le token généré
- Copie le fichier modèle et remplis-le avec tes infos :
cp .env.example .envPuis édite .env :
ATLASSIAN_BASE_URL=https://ton-site.atlassian.net
ATLASSIAN_EMAIL=ton.email@exemple.com
ATLASSIAN_API_TOKEN=le_token_que_tu_viens_de_copier
.env contient des informations sensibles : ne le partage jamais, ne le mets jamais
sur Git (ajoute-le à ton .gitignore).
python exemple1_lister_espaces_et_pages.pyCe qu'il fait :
GET /rest/api/space→ récupère tous les espaces Confluence accessibles- Pour chaque espace,
GET /rest/api/content?spaceKey=...→ récupère ses pages
Cas d'usage : explorer la documentation existante avant d'y ajouter ou d'y chercher quelque chose.
python exemple2_rechercher_et_creer_page.pyCe qu'il fait :
GET /rest/api/content/search(avec une requête CQL) → vérifie si une page sur ce sujet existe déjà- Si non trouvée,
POST /rest/api/content→ crée automatiquement la page
SPACE_KEY en haut du fichier avec la vraie clé
de ton espace Confluence.
Cas d'usage concret pour ton stage : avant de créer automatiquement une page de documentation depuis ton appli Laravel (ex: fiche d'un contrôle INN), on vérifie qu'elle n'existe pas déjà pour éviter les doublons.
| Étape | Détail |
|---|---|
| Authentification | Basic Auth avec (email, api_token) — envoyée à chaque requête |
| Format des échanges | JSON (envoi et réception) |
| Méthodes HTTP utilisées | GET pour lire, POST pour créer |
| Gestion des erreurs | raise_for_status() intercepte les codes 400/401/404/500 |
| Endpoints utilisés | /wiki/rest/api/space, /wiki/rest/api/content, /wiki/rest/api/content/search |
- Ajouter la suppression ou la modification de page (
DELETE/PUT /content/{id}) - Lier automatiquement la page créée à un ticket Jira (traçabilité, comme vu dans le cours)
- Brancher ce client sur ton appli Laravel/React : le backend Laravel pourrait appeler ces mêmes endpoints pour générer automatiquement de la documentation liée aux 4 domaines métier (flotte, opérations maritimes, contrôle INN, usines/négoce)