88API88API
User GuideAI ApplicationsAPI ReferenceHelp & Support

Module d'initialisation du système

Description des fonctionnalités

Le préfixe de toutes les interfaces fonctionnelles est unifié comme http(s)://<your-domain>

HTTPS doit être utilisé dans les environnements de production pour sécuriser les jetons d'authentification. HTTP n'est recommandé que pour les environnements de développement.

Le module d'initialisation du système est responsable de la configuration du premier déploiement et de la surveillance de l'état opérationnel. Il prend en charge les bases de données SQLite, MySQL et PostgreSQL, y compris la création d'utilisateurs root et l'initialisation des paramètres système. L'interface d'état fournit des informations système en temps réel, y compris la configuration OAuth, les bascules de fonctionnalités, etc.

🔐 Authentification non requise

Obtenir l'état d'initialisation du système

  • Nom de l'interface: obtenir l'état d'initialisation du système
  • Méthode HTTP: GET
  • Chemin: /api/setup
  • Exigence d'authentification: publique
  • Résumé des fonctionnalités: Vérifie si l'initialisation du système est terminée, récupère le type de base de données et le statut de l'utilisateur root

💡 Exemple de demande:

const response = await fetch('/api/setup', {
  method: 'GET',
  headers: {
    'Content-Type': 'application/json'
  }
});
const data = await response.json();

✅ Exemple de réponse réussie:

{
  "success": true,
  "data": {
    "status": false,
    "root_init": true,
    "database_type": "sqlite"
  }
}

❗ Exemple de réponse en cas d'échec:

{
  "success": false,
  "message": "System error"
}

🧾 Description du champ:

  • status (Booléen) : indique si l'initialisation du système est terminée
  • root_init (Booléen): Indique si l'utilisateur Root existe
  • database_type (String) : Type de base de données, valeurs facultatives : "mysql", "postgres", "sqlite"

Terminer l'assistant d'installation initiale

  • Nom de l'interface: Assistant d'installation initial complet
  • Méthode HTTP: POST
  • Chemin: /api/setup
  • Exigence d'authentification: publique
  • Résumé des fonctionnalités: crée le compte administrateur racine et termine la configuration de l'initialisation du système

💡 Exemple de demande:

const response = await fetch('/api/setup', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    username: "admin",
    password: "password123",
    confirmPassword: "password123",
    SelfUseModeEnabled: false,
    DemoSiteEnabled: false
  })
});
const data = await response.json();

✅ Exemple de réponse réussie:

{
  "success": true,
  "message": "System initialization completed"
}

❗ Exemple de réponse en cas d'échec:

{
  "success": false,
  "message": "Username length cannot exceed12characters"
}

🧾 Description du champ:

  • username (String) : nom d'utilisateur administrateur, longueur maximale 12 caractères
  • password (String) : Mot de passe administrateur, minimum 8 caractères
  • confirmPassword (String) : mot de passe de confirmation, doit correspondre au mot de passe
  • SelfUseModeEnabled (Booléen): s'il faut activer le mode d'utilisation personnelle
  • DemoSiteEnabled (Booléen): s'il faut activer le mode site de démonstration

Obtenir le résumé de l'état opérationnel

  • Nom de l'interface: obtenir un résumé de l'état opérationnel
  • Méthode HTTP: GET
  • Chemin: /api/status
  • Exigence d'authentification: publique
  • Résumé des fonctionnalités: récupère l'état opérationnel du système, les informations de configuration et les états de basculement des fonctionnalités

💡 Exemple de demande:

const response = await fetch('/api/status', {
  method: 'GET',
  headers: {
    'Content-Type': 'application/json'
  }
});
const data = await response.json();

✅ Exemple de réponse réussie:

{
  "success": true,
  "message": "",
  "data": {
    "version": "v1.0.0",
    "start_time": 1640995200,
    "email_verification": false,
    "github_oauth": true,
    "github_client_id": "your_client_id",
    "system_name": "88API",
    "quota_per_unit": 500000,
    "display_in_currency": true,
    "enable_drawing": true,
    "enable_task": true,
    "setup": true
  }
}

❗ Exemple de réponse en cas d'échec:

{
  "success": false,
  "message": "Failed to get status"
}

🧾 Description du champ:

  • version (String): numéro de version du système
  • start_time (Numéro): horodatage de démarrage du système
  • email_verification (Booléen): indique si la vérification des e-mails est activée
  • github_oauth (Booléen): indique si la connexion GitHub OAuth est activée
  • github_client_id (Chaîne): ID client GitHub OAuth
  • system_name (String) : Nom du système
  • quota_per_unit (Nombre) : Montant du quota par unité
  • display_in_currency (Booléen): s'il faut afficher au format monétaire
  • enable_drawing (Booléen): indique si la fonctionnalité de dessin est activée
  • enable_task (Booléen): indique si la fonctionnalité de tâche est activée
  • setup (booléen) : indique si l'initialisation du système est terminée

Sonde d'état compatible Uptime-Kuma

  • Nom de l'interface: Sonde d'état compatible Uptime-Kuma
  • Méthode HTTP: GET
  • Chemin: /api/uptime/status
  • Exigence d'authentification: publique
  • Résumé des fonctionnalités: Fournit une interface de vérification de l'état compatible avec le système de surveillance Uptime-Kuma

💡 Exemple de demande:

const response = await fetch('/api/uptime/status', {
  method: 'GET',
  headers: {
    'Content-Type': 'application/json'
  }
});
const data = await response.json();

✅ Exemple de réponse réussie:

{
  "success": true,
  "data": [
    {
      "categoryName": "OpenAIServe",
      "monitors": [
        {
          "name": "GPT-4",
          "group": "OpenAI",
          "status": 1,
          "uptime": 99.5
        }
      ]
    }
  ]
}

❗ Exemple de réponse en cas d'échec:

{
  "success": false,
  "message": "Failed to obtain monitoring data"
}

🧾 Description du champ:

  • categoryName (String): Nom de la catégorie de surveillance
  • monitors (Array) : Liste des éléments de surveillance
  • name (String): Nom de l'élément de surveillance
  • group (String): Nom du groupe de surveillance
  • status (Numéro): Code d'état, 1=Normal, 0=Anormal
  • uptime (Nombre): Pourcentage de disponibilité

🔐 Authentification de l'administrateur

Tester le backend et les composants dépendants

  • Nom de l'interface: tester le backend et les composants dépendants
  • Méthode HTTP: GET
  • Chemin: /api/status/test
  • Exigence d'authentification: Administrateur
  • Résumé des fonctionnalités: teste l'état de connexion et la santé de divers composants du système

💡 Exemple de demande:

const response = await fetch('/api/status/test', {
  method: 'GET',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_admin_token',
    'New-Api-User': 'your_user_id'
  }
});
const data = await response.json();

✅ Exemple de réponse réussie:

{
  "success": true,
  "message": "All components tested passed",
  "data": {
    "database": "connected",
    "redis": "connected",
    "external_apis": "healthy"
  }
}

❗ Exemple de réponse en cas d'échec:

{
  "success": false,
  "message": "Database connection failed"
}

🧾 Description du champ:

  • database (String) : État de connexion à la base de données
  • redis (String): état de la connexion Redis
  • external_apis (String): état de santé de l'API externe