Aller au contenu

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": [ "..." ]
}