Skip to content
Cette page a été générée et traduite avec l'aide de l'IA. Si vous remarquez des inexactitudes, n'hésitez pas à contribuer. Modifier sur GitHub

Vue d'ensemble de l'API REST

OpenPR fournit une API RESTful construite avec Rust et Axum pour l'accès programmatique à toutes les fonctionnalités de la plateforme. L'API prend en charge les formats de requête/réponse JSON et l'authentification basée sur JWT.

URL de base

http://localhost:8080/api

Dans les déploiements de production derrière un proxy inverse (Caddy/Nginx), l'API est généralement proxifiée via l'URL du frontend.

Format de réponse

Toutes les réponses de l'API suivent une structure JSON cohérente :

Succès

json
{
  "code": 0,
  "message": "success",
  "data": { ... }
}

Erreur

json
{
  "code": 400,
  "message": "Description détaillée de l'erreur"
}

Codes d'erreur courants :

CodeSignification
400Requête invalide (erreur de validation)
401Non autorisé (jeton manquant ou invalide)
403Interdit (permissions insuffisantes)
404Non trouvé
500Erreur interne du serveur

Catégories de l'API

CatégorieChemin de baseDescription
Authentification/api/auth/*Enregistrement, connexion, rafraîchissement de jeton
Projets/api/workspaces/*/projects/*CRUD, membres, paramètres
Problèmes/api/projects/*/issues/*CRUD, assigner, étiqueter, commenter
Tableau/api/projects/*/boardÉtat du tableau kanban
Sprints/api/projects/*/sprints/*CRUD et planification de sprints
Étiquettes/api/labels/*CRUD des étiquettes
Recherche/api/searchRecherche plein texte
Propositions/api/proposals/*Créer, voter, soumettre, archiver
Gouvernance/api/governance/*Configuration, journaux d'audit
Décisions/api/decisions/*Enregistrements de décisions
Scores de confiance/api/trust-scores/*Scores, historique, appels
Veto/api/veto/*Veto, escalade
Agents IA/api/projects/*/ai-agents/*Gestion des agents
Tâches IA/api/projects/*/ai-tasks/*Attribution de tâches
Jetons Bot/api/workspaces/*/botsCRUD des jetons bot
Téléchargement de fichiers/api/v1/uploadTéléchargement de fichiers multipart
Webhooks/api/workspaces/*/webhooks/*CRUD des webhooks
Admin/api/admin/*Gestion système

Voir la Référence des points de terminaison pour la référence complète de l'API.

Type de contenu

Toutes les requêtes POST/PUT/PATCH doivent utiliser Content-Type: application/json, sauf les téléchargements de fichiers qui utilisent multipart/form-data.

Pagination

Les points de terminaison de liste prennent en charge la pagination :

bash
curl "http://localhost:8080/api/projects/<id>/issues?page=1&per_page=20" \
  -H "Authorization: Bearer <token>"

Recherche plein texte

Le point de terminaison de recherche utilise la recherche plein texte PostgreSQL sur les problèmes, commentaires et propositions :

bash
curl "http://localhost:8080/api/search?q=authentication+bug" \
  -H "Authorization: Bearer <token>"

Vérification de santé

Le serveur API expose un point de terminaison de santé qui ne nécessite pas d'authentification :

bash
curl http://localhost:8080/health

Étapes suivantes

Released under the Apache-2.0 License.