# Points de terminaison Express Request

#### Statut et cycle de vie des services

| Méthode | Point de terminaison | Objet                                                             | Entrée                                           | Réponse en cas de succès                                 | Remarques                                    |
| ------- | -------------------- | ----------------------------------------------------------------- | ------------------------------------------------ | -------------------------------------------------------- | -------------------------------------------- |
| GET     | /status              | Obtenir le statut d'exécution complet du backend                  | Aucun                                            | success, expressPort, serverIdentity, go, mongo, jupyter | Vérifie l'état des probes avant de retourner |
| POST    | /stop-express        | Arrêter Express et tenter d'arrêter les services enfants au mieux | Aucun                                            | success, stopped or message                              | Tente également d'arrêter Go, Mongo, Jupyter |
| POST    | /run-go-server       | Démarrer ou redémarrer le service Go                              | Aucun                                            | success, running, port                                   | Tue d'abord le processus Go existant         |
| POST    | /ensure-go           | S'assurer que Go fonctionne (idempotent)                          | preferredPort optionnel                          | success, running, port                                   | Route moderne préférée                       |
| POST    | /ensure-mongo        | S'assurer que Mongo fonctionne (idempotent)                       | workspacePath optionnel                          | success, running, port                                   | Attend la disponibilité du port              |
| POST    | /ensure-jupyter      | S'assurer que Jupyter fonctionne (idempotent)                     | workspacePath optionnel, preferredPort optionnel | success, running, port                                   | preferredPort par défaut est 8900            |

#### Espace de travail et arbre des fichiers

| Méthode | Point de terminaison   | Objet                                                 | Entrée                        | Réponse en cas de succès  | Remarques                                                             |
| ------- | ---------------------- | ----------------------------------------------------- | ----------------------------- | ------------------------- | --------------------------------------------------------------------- |
| POST    | /set-working-directory | Définir l'espace de travail actif sur le serveur      | workspacePath requis          | success, workspace        | Marque l'espace de travail comme distant, réinitialise l'état connexe |
| GET     | /get-working-dir-tree  | Obtenir l'arborescence d'un répertoire pour un chemin | requestedPath en query requis | success, workingDirectory | Utilise une sortie d'arborescence de répertoire récursive             |

#### Importation et exportation de données Mongo

<table><thead><tr><th>Méthode</th><th width="132">Point de terminaison</th><th>Objet</th><th>Entrée</th><th>Réponse en cas de succès</th><th>Remarques</th></tr></thead><tbody><tr><td>POST</td><td>/insert-object-into-collection</td><td>Importer le contenu d'un fichier dans une collection Mongo</td><td>objectPath requis, medDataObject requis (id, type)</td><td>success, insertedCount</td><td>Prend en charge csv, html, png, jpg, jpeg, pkl</td></tr><tr><td>POST</td><td>/download-collection-to-file</td><td>Exporter le contenu d'une collection vers un fichier</td><td>collectionId, filePath, type requis</td><td>success</td><td>Prend en charge csv, html, json, images, pkl</td></tr></tbody></table>

#### Services exploratoires

| Méthode | Point de terminaison          | Objet                                       | Entrée                                                                                                         | Réponse en cas de succès                           | Remarques                                                        |
| ------- | ----------------------------- | ------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------- | ---------------------------------------------------------------- |
| POST    | /exploratory/dtale/start      | Démarrer D-Tale et attendre qu'il soit prêt | dataset requis (id, name), requestId optionnel, pageId optionnel                                               | success, requestId, remotePort, webServerUrl, name | Démarre automatiquement Go si nécessaire                         |
| POST    | /exploratory/dtale/progress   | Interroger le démarrage/progrès de D-Tale   | routeId requis                                                                                                 | success, progress                                  | Progrès par route                                                |
| POST    | /exploratory/dtale/stop       | Arrêter la session D-Tale                   | requestId optionnel, remotePort optionnel                                                                      | success                                            | Appelle le point de terminaison d'arrêt de D-Tale quand possible |
| POST    | /exploratory/sweetviz/start   | Générer un rapport SweetViz                 | mainDataset requis (id, name), compDataset optionnel, target optionnel, htmlFileID optionnel, pageId optionnel | success, htmlFileID, reportPath, expressPort       | Rapport servi par le point de terminaison de rapport             |
| POST    | /exploratory/ydata/start      | Générer un rapport ydata-profiling          | mainDataset requis (id, name), compDataset optionnel, htmlFileID optionnel, pageId optionnel                   | success, htmlFileID, reportPath, expressPort       | Rapport servi par le point de terminaison de rapport             |
| GET     | /exploratory/report/:reportId | Servir le rapport HTML généré               | reportId en path requis                                                                                        | Corps de réponse HTML                              | Content-Type text/html                                           |

#### Exécution et diagnostics de Mongo

| Méthode | Point de terminaison | Objet                                   | Entrée               | Réponse en cas de succès | Remarques                          |
| ------- | -------------------- | --------------------------------------- | -------------------- | ------------------------ | ---------------------------------- |
| POST    | /start-mongo         | Démarrer Mongo directement              | workspacePath requis | success, message         | Route directe héritée              |
| POST    | /stop-mongo          | Arrêter Mongo directement               | Aucun                | success                  | Route directe héritée              |
| GET     | /get-mongo-path      | Résoudre le chemin exécutable de mongod | Aucun                | success, path            | 404 si non trouvé                  |
| GET     | /mongo-debug         | Obtenir des infos de débogage Mongo     | Aucun                | success, mongoDebug      | Utile pour les échecs de démarrage |

#### Runtime Jupyter

| Méthode | Point de terminaison  | Objet                          | Entrée               | Réponse en cas de succès | Remarques              |
| ------- | --------------------- | ------------------------------ | -------------------- | ------------------------ | ---------------------- |
| GET     | /check-jupyter-status | Vérifier si Jupyter fonctionne | Aucun                | running, error           | Route de statut légère |
| POST    | /start-jupyter-server | Démarrer Jupyter directement   | workspacePath requis | running, error           | Route directe héritée  |
| POST    | /stop-jupyter-server  | Arrêter Jupyter                | Aucun                | objet résultat d'arrêt   | Route directe héritée  |

#### Python et dépendances

| Méthode | Point de terminaison              | Objet                                                      | Entrée                        | Réponse en cas de succès | Remarques                                                                          |
| ------- | --------------------------------- | ---------------------------------------------------------- | ----------------------------- | ------------------------ | ---------------------------------------------------------------------------------- |
| GET     | /get-bundled-python-environment   | Obtenir le chemin/détails de l'environnement Python inclus | Aucun                         | success, pythonEnv       | Utilisé avant les workflows Go/Python                                              |
| GET     | /get-installed-python-packages    | Obtenir les informations des paquets Python installés      | Aucun                         | success, packages        | L'implémentation actuelle semble retourner des données dérivées de l'environnement |
| POST    | /install-bundled-python           | Installer le runtime Python inclus                         | Aucun                         | success                  | Chemin de l'installateur backend                                                   |
| POST    | /install-required-python-packages | Installer les paquets Python requis                        | pythonPath optionnel          | success                  | Installe les dépendances requises pour les workflows backend                       |
| GET     | /check-python-requirements        | Valider les dépendances Python requises                    | pythonPath en query optionnel | success, requirementsMet | Résultat booléen                                                                   |
| GET     | /check-requirements               | Vérifier les exigences globales                            | Aucun                         | success, result          | Inclut les vérifications Mongo/Python                                              |
| POST    | /install-mongo                    | Installer MongoDB                                          | Aucun                         | success                  | La réponse d'erreur peut inclure installerExitCode et windowsInstallerError        |

### Comportement en cas d'erreur (schéma courant)

* 400 pour entrées requises invalides ou manquantes
* 500 pour échecs d'exécution/interne
* Payload d'erreur typique : success false, message d'erreur
* Certaines routes incluent des diagnostics supplémentaires (par exemple mongoDebug, installerExitCode)

### Schéma d'utilisation recommandé

1. Appelez /status pour inspecter l'état actuel.
2. Utilisez /ensure-go, /ensure-mongo, /ensure-jupyter au lieu des routes de démarrage héritées.
3. Pour les rapports exploratoires, démarrez via le point de terminaison exploratory puis consultez via /exploratory/report/:reportId.
4. Utilisez /mongo-debug et /check-requirements lorsque la configuration échoue.

<br>
