Files
decision/docs/content/dev/3.api-reference.md
Yvv 25437f24e3 Sprint 1 : scaffolding complet de Glibredecision
Plateforme de decisions collectives pour Duniter/G1.
Backend FastAPI async + PostgreSQL (14 tables, 8 routers, 6 services,
moteur de vote avec formule d'inertie WoT/Smith/TechComm).
Frontend Nuxt 4 + Nuxt UI v3 + Pinia (9 pages, 5 stores).
Infrastructure Docker + Woodpecker CI + Traefik.
Documentation technique et utilisateur (15 fichiers).
Seed : Licence G1, Engagement Forgeron v2.0.0, 4 protocoles de vote.
30 tests unitaires (formules, mode params, vote nuance) -- tous verts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 12:46:11 +01:00

5.9 KiB

title, description
title description
Reference API Liste des endpoints de l'API Glibredecision

Reference API

Tous les endpoints sont prefixes par /api/v1. L'API est auto-documentee via OpenAPI/Swagger a l'adresse /docs en mode debug.

Authentification (/api/v1/auth)

Methode Endpoint Description Auth
POST /challenge Generer un challenge Ed25519 pour une adresse Duniter Non
POST /verify Verifier la signature du challenge et obtenir un token Non
GET /me Retourner l'identite authentifiee courante Oui
POST /logout Invalider la session courante Oui

Documents (/api/v1/documents)

Methode Endpoint Description Auth
GET / Lister les documents (filtres: doc_type, status) Non
POST / Creer un nouveau document Oui
GET /{slug} Obtenir un document par son slug Non
PUT /{slug} Mettre a jour un document Oui
POST /{slug}/items Ajouter un item au document Oui
GET /{slug}/items Lister les items d'un document Non
GET /{slug}/items/{item_id} Obtenir un item avec son historique Non
POST /{slug}/items/{item_id}/versions Proposer une nouvelle version d'un item Oui

Decisions (/api/v1/decisions)

Methode Endpoint Description Auth
GET / Lister les decisions (filtres: decision_type, status) Non
POST / Creer une nouvelle decision Oui
GET /{id} Obtenir une decision avec ses etapes Non
PUT /{id} Mettre a jour une decision Oui
POST /{id}/steps Ajouter une etape a une decision Oui

Votes (/api/v1/votes)

Methode Endpoint Description Auth
POST /sessions Creer une session de vote Oui
GET /sessions/{id} Obtenir une session de vote Non
POST /sessions/{id}/vote Soumettre un vote (signe) Oui
GET /sessions/{id}/votes Lister les votes d'une session Non
GET /sessions/{id}/result Calculer et retourner le resultat courant Non

Mandats (/api/v1/mandates)

Methode Endpoint Description Auth
GET / Lister les mandats (filtres: mandate_type, status) Non
POST / Creer un nouveau mandat Oui
GET /{id} Obtenir un mandat avec ses etapes Non
PUT /{id} Mettre a jour un mandat Oui
DELETE /{id} Supprimer un mandat (brouillon uniquement) Oui
POST /{id}/steps Ajouter une etape a un mandat Oui
GET /{id}/steps Lister les etapes d'un mandat Non

Protocoles (/api/v1/protocols)

Methode Endpoint Description Auth
GET / Lister les protocoles de vote Non
POST / Creer un protocole de vote Oui
GET /{id} Obtenir un protocole avec sa configuration formule Non
GET /formulas Lister les configurations de formules Non
POST /formulas Creer une configuration de formule Oui

Sanctuaire (/api/v1/sanctuary)

Methode Endpoint Description Auth
GET / Lister les entrees du sanctuaire (filtre: entry_type) Non
GET /{id} Obtenir une entree du sanctuaire Non
POST / Creer une entree (hash SHA-256, CID IPFS, TX on-chain) Oui

WebSocket (/api/v1/ws)

Endpoint Description
/ws Connexion WebSocket pour notifications temps reel (votes, decisions)

Sante

Methode Endpoint Description
GET /api/health Verification de sante (hors versionning)

Pagination

Les endpoints de liste acceptent les parametres skip (offset, defaut 0) et limit (max 200, defaut 50).

Authentification

Les endpoints marques "Oui" dans la colonne Auth requierent un header :

Authorization: Bearer <token>

Le token est obtenu via le flux challenge-response (/auth/challenge puis /auth/verify).