API REST (Pode)¶
L'API est la seule interface à laquelle parle le front web. Elle tourne sur le serveur de déploiement Windows.
Démarrage¶
# Depuis le dossier du projet
pwsh -File .\API\Deploy-API.ps1 -Port 8080
# Ou avec HTTPS (nécessite un certificat)
pwsh -File .\API\Deploy-API.ps1 -Port 8443 -Https `
-CertPath 'C:\Certs\pswindeploy.pfx' -CertPassword 'MotDePasseCert'
Démarrage automatique (service Windows)¶
# Créer un service Windows via NSSM (Non-Sucking Service Manager)
# Télécharger NSSM : https://nssm.cc
nssm install PSWinDeployAPI `
"C:\Program Files\PowerShell\7\pwsh.exe" `
"-NonInteractive -File C:\Deploy\API\Deploy-API.ps1 -Port 8080"
nssm set PSWinDeployAPI AppDirectory C:\Deploy
nssm start PSWinDeployAPI
Endpoints disponibles¶
| Méthode | Route | Description |
|---|---|---|
| GET | /api/health |
État de l'API |
| GET | /api/profiles |
Liste tous les profils |
| GET | /api/profiles/:id |
Détail d'un profil |
| GET | /api/catalogue |
Catalogue complet |
| GET | /api/catalogue/:category |
Catalogue filtré par catégorie |
| GET | /api/wim |
Images WIM disponibles |
| GET | /api/sequences |
Liste des séquences |
| POST | /api/deploy/prepare |
Résout profil + séquence runtime |
| GET | /api/deploy/status/:id |
État d'un déploiement |
| GET | /api/deploy/logs/:id |
Dernières lignes de log |
Exemple : préparer un déploiement¶
curl -X POST http://SERVEUR:8080/api/deploy/prepare \
-H "Content-Type: application/json" \
-d '{
"profileId": "profil-poste-rh",
"selectedApps": ["app-chrome", "app-sap-gui"],
"machineName": "RH-PC-050"
}'
Réponse :
{
"success": true,
"runtimeId": "a1b2c3d4",
"runtimePath": "\\\\SERVEUR\\Deploy\\Runtime\\seq-a1b2c3d4.json",
"sequenceName": "Windows 11 Pro — Poste domaine standard",
"stepCount": 11,
"steps": [ "..." ]
}