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éeroot_init(Booléen): Indique si l'utilisateur Root existedatabase_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èrespassword(String) : Mot de passe administrateur, minimum 8 caractèresconfirmPassword(String) : mot de passe de confirmation, doit correspondre au mot de passeSelfUseModeEnabled(Booléen): s'il faut activer le mode d'utilisation personnelleDemoSiteEnabled(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èmestart_time(Numéro): horodatage de démarrage du systèmeemail_verification(Booléen): indique si la vérification des e-mails est activéegithub_oauth(Booléen): indique si la connexion GitHub OAuth est activéegithub_client_id(Chaîne): ID client GitHub OAuthsystem_name(String) : Nom du systèmequota_per_unit(Nombre) : Montant du quota par unitédisplay_in_currency(Booléen): s'il faut afficher au format monétaireenable_drawing(Booléen): indique si la fonctionnalité de dessin est activéeenable_task(Booléen): indique si la fonctionnalité de tâche est activéesetup(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 surveillancemonitors(Array) : Liste des éléments de surveillancename(String): Nom de l'élément de surveillancegroup(String): Nom du groupe de surveillancestatus(Numéro): Code d'état, 1=Normal, 0=Anormaluptime(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éesredis(String): état de la connexion Redisexternal_apis(String): état de santé de l'API externe