Skip to content

Référence API

L'API d'Anonymisation fournit des points d'accès complets pour gérer les sources de données, les règles d'anonymisation, les flux de travail et les tâches de traitement. Cette page présente un aperçu de la structure de l'API et des liens vers la documentation détaillée.

Documentation API Interactive

Pour une documentation API complète et interactive avec des exemples de requêtes/réponses et la possibilité de tester directement les points d'accès, visitez:

🚀 Documentation API Interactive

La documentation interactive est générée automatiquement à partir de la spécification OpenAPI et fournit:

  • Liste complète des points d'accès avec descriptions
  • Schémas de requêtes/réponses
  • Exigences d'authentification
  • Exemples de requêtes et réponses
  • Définitions de modèles et types de données
  • Formats de réponses d'erreur

Vue d'Ensemble de l'API

URL de Base

http://localhost:8001/api

Authentification

L'API utilise OAuth2 avec l'authentification par jeton Bearer. La plupart des points d'accès nécessitent une authentification, à l'exception du point d'accès racine et des points d'accès d'authentification.

Type de Contenu

Tous les points d'accès de l'API acceptent et renvoient des données JSON avec Content-Type: application/json.

Catégories de Points d'Accès

🔐 Authentification

  • POST /auth/login - Se connecter et obtenir un jeton d'accès
  • POST /auth/register - Enregistrer un nouvel utilisateur
  • GET /auth/me - Obtenir les informations de l'utilisateur actuel
  • POST /auth/logout - Déconnecter l'utilisateur actuel

📁 Sources

  • POST /sources/list - Lister les sources de données
  • POST /sources/ - Créer une nouvelle source de données
  • POST /sources/test - Tester la connexion à la source
  • GET /sources/{source_id} - Obtenir les détails d'une source
  • PUT /sources/{source_id} - Mettre à jour une source
  • DELETE /sources/{source_id} - Supprimer une source
  • POST /sources/{source_id}/preview - Prévisualiser les fichiers de la source

📄 Actifs

  • GET /assets/{asset_id} - Obtenir les détails d'un actif
  • PUT /assets/{asset_id} - Mettre à jour un actif
  • DELETE /assets/{asset_id} - Supprimer un actif
  • GET /assets/{asset_id}/url - Obtenir l'URL de téléchargement d'un actif

🔄 Flux de Travail

  • POST /workflows/list - Lister les flux de travail
  • POST /workflows/ - Créer un flux de travail
  • GET /workflows/{workflow_id} - Obtenir les détails d'un flux de travail
  • PUT /workflows/{workflow_id} - Mettre à jour un flux de travail
  • DELETE /workflows/{workflow_id} - Supprimer un flux de travail

🛡️ Règles d'Anonymisation

  • POST /rules/list - Lister les règles d'anonymisation
  • POST /rules/ - Créer une règle d'anonymisation
  • GET /rules/{rule_id} - Obtenir les détails d'une règle
  • PUT /rules/{rule_id} - Mettre à jour une règle
  • DELETE /rules/{rule_id} - Supprimer une règle

⚙️ Tâches

  • POST /jobs/list - Lister les tâches de traitement
  • POST /jobs/upload - Télécharger des actifs pour une tâche
  • GET /jobs/{job_id} - Obtenir les détails d'une tâche
  • PUT /jobs/{job_id} - Mettre à jour une tâche
  • POST /jobs/{job_id}/execute - Exécuter une tâche
  • GET /jobs/{job_id}/status - Obtenir l'état d'une tâche
  • PUT /jobs/{job_id}/cancel - Annuler une tâche
  • POST /jobs/{job_id}/assets - Lister les actifs d'une tâche
  • DELETE /jobs/{job_id}/assets - Supprimer des actifs d'une tâche
  • POST /jobs/load - Charger des actifs depuis une source

👥 Gestion des Utilisateurs (Admin Uniquement)

  • GET /users/ - Lister les utilisateurs
  • GET /users/{user_id} - Obtenir les détails d'un utilisateur
  • PUT /users/{user_id} - Mettre à jour un utilisateur
  • DELETE /users/{user_id} - Supprimer un utilisateur
  • PUT /users/{user_id}/block - Bloquer un utilisateur
  • PUT /users/{user_id}/password/reset - Réinitialiser le mot de passe d'un utilisateur

🔒 Rôles et Permissions (Admin Uniquement)

  • GET /roles/ - Lister les rôles
  • POST /roles/ - Créer un rôle
  • GET /roles/{role_id} - Obtenir les détails d'un rôle
  • PUT /roles/{role_id} - Mettre à jour un rôle
  • DELETE /roles/{role_id} - Supprimer un rôle
  • GET /permissions/ - Lister les permissions
  • POST /permissions/ - Créer une permission
  • POST /permissions/default - Créer des permissions par défaut

🔔 Notifications

  • POST /notifications/list - Lister les notifications
  • POST /notifications/{notification_id}/read - Marquer une notification comme lue

Modèles de Données

Entités Clés

Types de Sources

  • LOCAL_ASSET - Stockage de fichiers local
  • SHAREPOINT - Microsoft SharePoint
  • GOOGLE_DRIVE - Google Drive
  • FTP / SFTP - Protocoles de transfert de fichiers
  • POSTGRES / MYSQL / ORACLE / SQL_SERVER / SQLITE - Sources de bases de données

Types d'Actifs

  • TABLE - Données structurées (bases de données, fichiers CSV)
  • DOCUMENT - Documents non structurés (PDF, DOCX, etc.)

Types de Règles d'Anonymisation

  • REGEX - Anonymisation basée sur des modèles utilisant des expressions régulières
  • AIMODEL - Anonymisation basée sur des modèles d'IA utilisant GLiNER

États des Tâches

  • PENDING - Tâche créée mais non démarrée
  • IN_PROGRESS - Tâche en cours de traitement
  • SUCCEEDED - Tâche terminée avec succès
  • FAILED - Tâche échouée avec des erreurs
  • CANCELLED - Tâche annulée par l'utilisateur

Exemples de Requêtes

Authentification

# Connexion
curl -X POST "https://api-domain.com/api/auth/login" \
  -H "Content-Type: application/json" \
  -d '{"email": "user@example.com", "password": "password"}'

Créer une Règle d'Anonymisation

# Créer une règle basée sur regex
curl -X POST "https://api-domain.com/api/rules/" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Anonymisation d'Email",
    "type": "REGEX",
    "config": {
      "regexRuleConfig": {
        "pattern": "\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Z|a-z]{2,}\\b"
      }
    }
  }'

Exécuter une Tâche

# Exécuter une tâche d'anonymisation
curl -X POST "https://api-domain.com/api/jobs/{job_id}/execute" \
  -H "Authorization: Bearer YOUR_TOKEN"

Gestion des Erreurs

L'API utilise des codes de statut HTTP standard et renvoie des informations d'erreur détaillées:

Codes de Statut HTTP

  • 200 - Succès
  • 400 - Requête Incorrecte
  • 401 - Non Autorisé
  • 403 - Interdit
  • 404 - Non Trouvé
  • 422 - Erreur de Validation
  • 500 - Erreur Interne du Serveur

Format de Réponse d'Erreur

{
  "detail": [
    {
      "loc": ["nom_du_champ"],
      "msg": "Description de l'erreur",
      "type": "type_d_erreur"
    }
  ]
}

Limitation de Débit

Les requêtes API peuvent être soumises à une limitation de débit. Vérifiez les en-têtes de réponse pour obtenir des informations sur la limitation:

  • X-RateLimit-Limit - Limite de requêtes par fenêtre de temps
  • X-RateLimit-Remaining - Requêtes restantes dans la fenêtre actuelle
  • X-RateLimit-Reset - Moment où la limite de débit se réinitialise

Pagination

Les points d'accès de liste prennent en charge la pagination avec les paramètres suivants:

  • skip - Nombre d'enregistrements à ignorer (par défaut: 0)
  • limit - Nombre maximum d'enregistrements à renvoyer (par défaut: 100) ````