Interopérabilité
APIs & Intégrations
REST, GraphQL, WebSocket — SAYTU expose des interfaces standardisées, sécurisées par OAuth2 / JWT, documentées via Swagger/OpenAPI.
Standards exposés
REST
API RESTful versionnée, OpenAPI 3.1.
GraphQL
Requêtes flexibles pour consommation frontale.
WebSocket
Push temps réel (alertes, notifications).
OAuth2 / JWT
Authentification standardisée, tokens signés.
Exemple — Création d'un PV
POST /api/v1/police/pv
{
"agent_id": "AG-2026-4471",
"lieu": {
"adresse": "Avenue Bourguiba, Dakar",
"latitude": 14.6928,
"longitude": -17.4467
},
"personne": {
"cni": "1234567890123",
"biometrie_verifiee": true
},
"infraction": "vol_simple",
"description": "...",
"pieces_jointes": ["photo1.jpg", "video1.mp4"]
}Réponse
201 Created
{
"pv_id": "PV-2026-0087412",
"statut": "en_attente_signature",
"cree_le": "2026-07-02T10:34:12Z",
"hash_integrite": "sha256:9f2c...",
"url_signature": "/api/v1/signatures/PV-2026-0087412"
}Exemples clients
curl -X POST https://api.saytu.gouv/v1/police/pv \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d @pv.json
Endpoints principaux (extrait)
| Méthode | Endpoint | Description | Scope |
|---|---|---|---|
| POST | /api/v1/auth/login | Authentification | public |
| GET | /api/v1/personnes/{cni} | Fiche personne | police.read |
| POST | /api/v1/police/pv | Créer un PV | police.write |
| GET | /api/v1/justice/dossiers/{id} | Dossier judiciaire | justice.read |
| POST | /api/v1/prison/ecrou | Écrouer un détenu | prison.write |
| PUT | /api/v1/prison/detenus/{id}/mutation | Mutation cellule | prison.write |
| GET | /api/v1/biometrie/faciale/match | Reconnaissance faciale | bio.match |
Sécurité des APIs
OAuth2
Flow authorization code + PKCE
JWT
RS256, expiration courte + refresh
mTLS
Chiffrement mutuel inter-services
Rate limit
Throttling par token & IP