Référence Complète des Routes API Veza

Inventaire exhaustif de tous les endpoints REST et WebSocket. Source : veza-backend-api/internal/api/routes_*.go et veza-stream-server/src/routes/api.rs ~500+ endpoints au total.

Conventions

Légende des badges

Badge Signification
🔓 Public (pas d'auth)
🔒 Auth requise
🔒👑 Auth + admin + MFA
🔒🎨 Auth + rôle content_creator
Rate limité spécifiquement

1. Authentification (/auth)

Fichier : routes_auth.go

Endpoints publics

Méthode Route Description Notes
🔓 POST /auth/register Inscription ⚡ Rate limité
🔓 POST /auth/login Connexion ⚡ Rate limité
🔓 POST /auth/login/2fa Connexion avec 2FA
🔓 POST /auth/refresh Rafraîchir le token ⚡ Rate limité
🔓 POST /auth/verify-email Vérification email ⚡ Rate limité
🔓 POST /auth/resend-verification Renvoyer email vérification ⚡ Rate limité
🔓 GET /auth/check-username Disponibilité pseudo ⚡ Rate limité
🔓 POST /auth/password/reset-request Demande reset mot de passe ⚡ Rate limité
🔓 POST /auth/password/reset Reset mot de passe
🔓 GET /auth/oauth/providers Liste des providers OAuth
🔓 GET /auth/oauth/:provider Initier OAuth
🔓 GET /auth/oauth/:provider/callback Callback OAuth

Endpoints protégés

Méthode Route Description
🔒 POST /auth/logout Déconnexion
🔒 GET /auth/me Info utilisateur courant
🔒 POST /auth/stream-token Générer token streaming
🔒 POST /auth/2fa/setup Configurer 2FA
🔒 POST /auth/2fa/verify Vérifier 2FA
🔒 POST /auth/2fa/disable Désactiver 2FA
🔒 GET /auth/2fa/status Statut 2FA
🔒 GET /auth/passkeys Lister Passkeys/WebAuthn
🔒 POST /auth/passkeys/register/begin Début enregistrement passkey
🔒 POST /auth/passkeys/register/finish Fin enregistrement passkey
🔒 PUT /auth/passkeys/:id Renommer passkey
🔒 DELETE /auth/passkeys/:id Supprimer passkey
🔒 GET /auth/login-history Historique connexions

2. Utilisateurs (/users)

Fichier : routes_users.go

Endpoints publics

Méthode Route Description
🔓 GET /users Lister les utilisateurs
🔓 GET /users/:id Profil utilisateur
🔓 GET /users/by-username/:username Profil par pseudo
🔓 GET /users/search Recherche utilisateurs
🔓 GET /users/:id/reposts Reposts de l'utilisateur
🔓 GET /users/:id/gear Profil équipement public

Endpoints protégés

Méthode Route Description
🔒 GET /users/suggestions Suggestions de follow
🔒 GET /users/settings Paramètres utilisateur
🔒 PUT /users/settings Modifier paramètres
🔒 PUT /users/:id Modifier profil (ownership)
🔒 DELETE /users/:id Supprimer utilisateur (ownership)
🔒 GET /users/:id/completion Complétion profil
🔒 PUT /users/me/presence Mettre à jour présence
🔒 GET /users/:id/presence Voir la présence
🔒 POST /users/:id/follow Suivre
🔒 DELETE /users/:id/follow Ne plus suivre
🔒 POST /users/:id/block Bloquer
🔒 DELETE /users/:id/block Débloquer
🔒 POST /users/:id/roles Assigner rôle
🔒 DELETE /users/:id/roles/:roleId Révoquer rôle
🔒 POST /users/:id/avatar Upload avatar
🔒 DELETE /users/:id/avatar Supprimer avatar
🔒 GET /users/:id/likes Pistes likées
🔒 PUT /users/me/password Changer mot de passe
🔒 GET /users/me/export Export JSON (sync, fallback)
🔒 POST /users/me/export Export RGPD (async)
🔒 GET /users/me/exports Lister exports
🔒 GET /users/me/exports/:id/download Télécharger export
🔒 GET /users/me/exports/:id Statut export
🔒 DELETE /users/me Supprimer compte
🔒 POST /users/me/privacy/opt-out CCPA Do Not Sell

3. Rôles (/roles)

Fichier : routes_users.go

Méthode Route Description
🔒 GET /roles Lister les rôles
🔒 GET /roles/:id Détail d'un rôle
🔒 POST /roles Créer un rôle
🔒 PUT /roles/:id Modifier un rôle
🔒 DELETE /roles/:id Supprimer un rôle

4. Pistes audio (/tracks)

Fichier : routes_tracks.go

Endpoints publics

Méthode Route Description
🔓 GET /tracks Lister les pistes (auth optionnelle)
🔓 GET /tracks/search Recherche de pistes
🔓 GET /tracks/suggested-tags Suggestions de tags
🔓 GET /tracks/:id Détail piste (auth optionnelle)
🔓 GET /tracks/:id/lyrics Paroles
🔓 GET /tracks/:id/stats Statistiques
🔓 GET /tracks/:id/waveform Forme d'onde
🔓 GET /tracks/:id/history Historique
🔓 GET /tracks/:id/download Téléchargement
🔓 GET /tracks/shared/:token Piste partagée
🔓 GET /tracks/:id/repost Statut repost (auth optionnelle)
🔓 GET /tracks/:id/comments Commentaires

Endpoints HLS (publics)

Méthode Route Description
🔓 GET /tracks/:id/hls/info Info stream HLS
🔓 GET /tracks/:id/hls/status Statut stream HLS
🔓 GET /tracks/:id/hls/master.m3u8 Playlist master HLS
🔓 GET /tracks/:id/hls/:bitrate/playlist.m3u8 Playlist qualité
🔓 GET /tracks/:id/hls/:bitrate/:segment Segment HLS

Endpoints protégés

Méthode Route Description
🔒🎨 POST /tracks Upload piste
🔒 GET /tracks/recommendations Recommandations
🔒 PUT /tracks/:id Modifier piste (ownership)
🔒 PUT /tracks/:id/lyrics Modifier paroles (ownership)
🔒 DELETE /tracks/:id Supprimer piste (ownership)
🔒 GET /tracks/:id/status Statut upload
🔒 POST /tracks/initiate Initier upload chunked
🔒 POST /tracks/chunk Upload chunk
🔒 POST /tracks/complete Finaliser upload chunked
🔒 GET /tracks/quota/:id Quota upload
🔒 GET /tracks/resume/:uploadId Reprendre upload
🔒 POST /tracks/batch/delete Suppression batch
🔒 POST /tracks/batch/update Mise à jour batch
🔒 POST /tracks/:id/like Liker
🔒 DELETE /tracks/:id/like Unliker
🔒 GET /tracks/:id/likes Likes de la piste
🔒 POST /tracks/:id/repost Reposter
🔒 DELETE /tracks/:id/repost Annuler repost
🔒 POST /tracks/:id/share Créer partage
🔒 DELETE /tracks/share/:id Révoquer partage
🔒 POST /tracks/:id/versions/:versionId/restore Restaurer version
🔒 POST /tracks/:id/play Enregistrer lecture
🔒 POST /tracks/:id/stems Upload stem
🔒 GET /tracks/:id/stems Lister stems
🔒 GET /tracks/:id/stems/:name/download Télécharger stem

Commentaires

Méthode Route Description
🔒 POST /tracks/:id/comments Créer commentaire
🔒 DELETE /comments/:id Supprimer commentaire

5. Playlists (/playlists)

Fichier : routes_playlists.go

Méthode Route Description
🔓 GET /playlists/shared/:token Playlist partagée
🔒 GET /playlists Mes playlists
🔒 POST /playlists Créer playlist
🔒 POST /playlists/import Importer playlist
🔒 GET /playlists/search Recherche
🔒 GET /playlists/recommendations Recommandations
🔒 GET /playlists/favoris Playlist favoris
🔒 GET /playlists/:id Détail playlist
🔒 GET /playlists/:id/analytics Stats playlist
🔒 PUT /playlists/:id Modifier (ownership)
🔒 DELETE /playlists/:id Supprimer (ownership)
🔒 POST /playlists/:id/tracks Ajouter piste
🔒 DELETE /playlists/:id/tracks/:track_id Retirer piste
🔒 PUT /playlists/:id/tracks/reorder Réordonner
🔒 POST /playlists/:id/collaborators Ajouter collaborateur
🔒 GET /playlists/:id/collaborators Lister collaborateurs
🔒 PUT /playlists/:id/collaborators/:userId Modifier permission
🔒 DELETE /playlists/:id/collaborators/:userId Retirer collaborateur
🔒 POST /playlists/:id/share Créer lien de partage
🔒 GET /playlists/:id/export/json Export JSON
🔒 GET /playlists/:id/export/csv Export CSV
🔒 GET /playlists/:id/export/m3u Export M3U
🔒 POST /playlists/:id/duplicate Dupliquer

6. Chat & Conversations (/chat, /conversations)

Fichier : router.go, routes_core.go

Chat

Méthode Route Description
🔒 GET /chat/ws WebSocket chat
🔒 POST /chat/token Obtenir token chat
🔒 GET /chat/stats Stats chat
🔒 POST /chat/rooms/:roomId/messages/:messageId/reactions Ajouter réaction
🔒 DELETE /chat/rooms/:roomId/messages/:messageId/reactions Retirer réaction
🔒 GET /chat/rooms/:roomId/messages/search Recherche messages
🔒 POST /chat/rooms/:roomId/attachments Upload pièce jointe

Conversations

Méthode Route Description
🔒 GET /conversations Mes conversations
🔒 POST /conversations Créer conversation
🔒 GET /conversations/join/:token Rejoindre par token
🔒 GET /conversations/:id Détail conversation
🔒 PUT /conversations/:id Modifier conversation
🔒 DELETE /conversations/:id Supprimer conversation
🔒 POST /conversations/:id/leave Quitter
🔒 GET /conversations/:id/members Lister membres
🔒 POST /conversations/:id/members Ajouter membre
🔒 DELETE /conversations/:id/members/:userId Exclure membre
🔒 PATCH /conversations/:id/members/:userId Modifier rôle membre
🔒 POST /conversations/:id/participants Ajouter participant
🔒 DELETE /conversations/:id/participants/:userId Retirer participant
🔒 POST /conversations/:id/invitations Créer invitation
🔒 GET /conversations/:id/history Historique

7. Social (/social)

Fichier : routes_social.go

Endpoints publics

Méthode Route Description
🔓 GET /social/feed Feed (auth optionnelle)
🔓 GET /social/explore Explorer
🔓 GET /social/trending Tendances
🔓 GET /social/posts/user/:user_id Posts utilisateur
🔓 GET /social/groups Lister groupes

Endpoints protégés

Méthode Route Description
🔒 GET /social/groups/mine Mes groupes
🔒 GET /social/groups/:id Détail groupe
🔒 POST /social/posts Créer post
🔒 POST /social/like Toggle like
🔒 POST /social/comments Ajouter commentaire
🔒 POST /social/groups Créer groupe
🔒 POST /social/groups/:id/join Rejoindre groupe
🔒 DELETE /social/groups/:id/leave Quitter groupe
🔒 POST /social/groups/:id/request Demande adhésion
🔒 GET /social/groups/:id/requests Demandes en attente
🔒 POST /social/groups/:id/requests/:request_id/approve Approuver
🔒 POST /social/groups/:id/requests/:request_id/reject Rejeter
🔒 POST /social/groups/:id/invite Inviter membre
🔒 PUT /social/groups/:id/members/:user_id/role Modifier rôle

8. Découverte (/discover)

Fichier : routes_discover.go

Méthode Route Description
🔓 GET /discover/genres Lister genres
🔓 GET /discover/genre/:genre Pistes par genre
🔓 GET /discover/tag/:tag Pistes par tag
🔓 GET /discover/playlists/editorial Playlists éditoriales
🔒 POST /discover/genre/:genre/follow Suivre genre
🔒 DELETE /discover/genre/:genre/follow Ne plus suivre genre
🔒 POST /discover/tag/:tag/follow Suivre tag
🔒 DELETE /discover/tag/:tag/follow Ne plus suivre tag

Fichier : routes_search.go

Méthode Route Description
🔓 GET /search Recherche unifiée (pistes, users, playlists)
🔓 GET /search/suggestions Suggestions

Backend : Elasticsearch (fallback PostgreSQL full-text).


10. Feed (/feed)

Fichier : routes_feed.go

Méthode Route Description
🔒 GET /feed Feed chronologique des pistes

11. File d'attente (/queue)

Fichier : routes_queue.go

Méthode Route Description
🔒 GET /queue Ma file d'attente
🔒 PUT /queue Mettre à jour
🔒 POST /queue/items Ajouter item
🔒 DELETE /queue/items/:id Retirer item
🔒 DELETE /queue Vider la file
🔒 POST /queue/session Créer session collaborative
🔒 DELETE /queue/session/:token Supprimer session
🔒 POST /queue/session/:token/items Ajouter à session
🔒 DELETE /queue/session/:token/items/:id Retirer de session
🔓 GET /queue/session/:token Voir session (auth optionnelle)

12. Marketplace (/marketplace, /sell, /commerce)

Fichier : routes_marketplace.go

Marketplace (publics)

Méthode Route Description
🔓 GET /marketplace/products Lister produits
🔓 GET /marketplace/products/:id Détail produit
🔓 GET /marketplace/products/:id/preview Prévisualiser
🔓 GET /marketplace/products/:id/reviews Avis

Marketplace (protégés)

Méthode Route Description
🔒🎨 POST /marketplace/products Créer produit
🔒🎨 POST /marketplace/products/:id/preview Upload preview
🔒 PUT /marketplace/products/:id Modifier (ownership)
🔒 PUT /marketplace/products/:id/images Modifier images
🔒 GET /marketplace/orders Mes commandes
🔒 GET /marketplace/orders/:id Détail commande
🔒 GET /marketplace/orders/:id/invoice Facture
🔒 POST /marketplace/orders/:id/refund Remboursement
🔒 POST /marketplace/orders Créer commande
🔒 GET /marketplace/download/:product_id URL téléchargement
🔒 GET /marketplace/licenses/mine Mes licences
🔒 POST /marketplace/products/:id/reviews Laisser avis
🔒 GET /marketplace/wishlist Wishlist
🔒 POST /marketplace/wishlist Ajouter à wishlist
🔒 DELETE /marketplace/wishlist/:productId Retirer de wishlist

Vendeur (/sell)

Méthode Route Description
🔒🎨 GET /sell/stats Stats ventes
🔒🎨 GET /sell/stats/evolution Évolution stats
🔒🎨 GET /sell/stats/top-products Top produits
🔒🎨 GET /sell/sales Historique ventes
🔒🎨 POST /sell/connect/onboard Onboarding Stripe Connect
🔒🎨 GET /sell/connect/callback Callback Stripe
🔒🎨 GET /sell/balance Solde
🔒🎨 GET /sell/transfers Transferts
🔒🎨 GET /sell/marketplace-balance Solde marketplace
🔒🎨 GET /sell/payouts Historique versements
🔒🎨 POST /sell/payouts/request Demander versement
🔒🎨 POST /sell/kyc/start Démarrer KYC
🔒🎨 GET /sell/kyc/status Statut KYC

Commerce (/commerce)

Méthode Route Description
🔒 GET /commerce/cart Panier
🔒 GET /commerce/promo/:code Valider code promo
🔒 POST /commerce/cart/items Ajouter au panier
🔒 DELETE /commerce/cart/items/:id Retirer du panier
🔒 POST /commerce/cart/checkout Payer

Support

Méthode Route Description
🔓 POST /support/tickets Soumettre ticket

13. Webhooks (/webhooks)

Fichier : routes_webhooks.go

Méthode Route Description
🔓 POST /webhooks/hyperswitch Webhook paiement (vérif. signature)
🔒 POST /webhooks Enregistrer webhook
🔒 GET /webhooks Lister webhooks
🔒 DELETE /webhooks/:id Supprimer webhook
🔒 GET /webhooks/stats Stats webhooks
🔒 POST /webhooks/:id/test Tester webhook
🔒 POST /webhooks/:id/regenerate-key Régénérer clé API

14. Analytics (/analytics, /creator/analytics)

Fichier : routes_analytics.go

Méthode Route Description
🔒 GET /analytics/creator/stats Stats créateur
🔒 GET /analytics/creator/charts Graphiques
🔒 GET /analytics/creator/export Export
🔒 GET /analytics Analytics globales
🔒 POST /analytics/events Enregistrer événement
🔒 GET /analytics/tracks/:id Analytics piste
🔒 GET /analytics/traffic-sources Sources de trafic
🔒 GET /analytics/device-breakdown Répartition appareils
🔒 GET /creator/analytics/dashboard Dashboard créateur
🔒 GET /creator/analytics/plays Évolution lectures
🔒 GET /creator/analytics/sales Ventes
🔒 GET /creator/analytics/discovery Sources découverte
🔒 GET /creator/analytics/geographic Géographie
🔒 GET /creator/analytics/audience Audience
🔒 GET /creator/analytics/live/:streamId Métriques live
🔒 GET /creator/analytics/tracks Pistes
🔒 GET /creator/analytics/export Export analytics
🔒 GET /creator/analytics/heatmap/:trackId Heatmap piste
🔒 GET /creator/analytics/compare Comparaison périodes
🔒 GET /creator/analytics/marketplace Analytics marketplace
🔒 GET /creator/analytics/alerts Alertes métriques
🔒 POST /creator/analytics/alerts Créer alerte
🔒 PUT /creator/analytics/alerts/preferences Préférences alertes
🔒 DELETE /creator/analytics/alerts/:alertId Supprimer alerte
🔒 POST /creator/analytics/alerts/check Vérifier alertes

15. Modération (/admin/moderation, /reports, /strikes)

Fichier : routes_moderation.go

Admin

Méthode Route Description
🔒👑 GET /admin/moderation/queue File de modération
🔒👑 POST /admin/moderation/reports/:id/process Traiter signalement
🔒👑 POST /admin/moderation/reports/:id/assign Assigner signalement
🔒👑 GET /admin/moderation/spam Détections spam
🔒👑 GET /admin/moderation/fingerprints Empreintes en attente
🔒👑 POST /admin/moderation/fingerprints/:trackId/review Vérifier empreinte
🔒👑 GET /admin/moderation/users/:userId/strikes Strikes utilisateur
🔒👑 GET /admin/moderation/appeals Appels en attente
🔒👑 POST /admin/moderation/appeals/:strikeId/resolve Résoudre appel
🔒👑 GET /admin/moderation/stats Stats modération

Utilisateur

Méthode Route Description
🔒 POST /reports Signaler contenu
🔒 GET /me/strikes Mes strikes
🔒 POST /strikes/:strikeId/appeal Faire appel

16. Administration plateforme (/admin/platform)

Fichier : routes_admin_platform.go

Méthode Route Description
🔒👑 GET /admin/platform/metrics Métriques plateforme
🔒👑 GET /admin/platform/users Recherche utilisateurs
🔒👑 GET /admin/platform/users/:userId Détail utilisateur
🔒👑 PUT /admin/platform/users/:userId/role Modifier rôle
🔒👑 POST /admin/platform/users/:userId/suspend Suspendre
🔒👑 POST /admin/platform/users/:userId/unsuspend Réactiver
🔒👑 GET /admin/platform/content Recherche contenu
🔒👑 POST /admin/platform/content/:id/hide Masquer contenu
🔒👑 POST /admin/platform/content/:id/restore Restaurer contenu
🔒👑 GET /admin/platform/payments Aperçu paiements
🔒👑 POST /admin/platform/orders/:id/refund Rembourser commande

17. Live streaming (/live)

Fichier : routes_live.go

Méthode Route Description
🔓 GET /live/streams Lister streams live
🔓 GET /live/streams/:id Détail stream
🔒 GET /live/streams/me Mes streams
🔒 GET /live/streams/me/key Clé de stream
🔒 POST /live/streams/me/key/regenerate Régénérer clé
🔒 POST /live/streams Créer live
🔒 PUT /live/streams/:id Modifier live
POST /live/callback/publish Callback RTMP (secret)
POST /live/callback/publish_done Callback fin RTMP

18. Co-écoute (/co-listening)

Fichier : routes_co_listening.go

Méthode Route Description
🔒 POST /co-listening/sessions Créer session
🔒 GET /co-listening/sessions/:id Détail session
🔒 DELETE /co-listening/sessions/:id Terminer session
🔒 GET /co-listening/ws WebSocket co-écoute (JWT en query)

19. Inventaire / Équipement (/inventory, /users/:id/gear)

Fichier : routes_gear.go

Méthode Route Description
🔓 GET /users/:id/gear Profil équipement public
🔒 GET /inventory/gear Lister mon équipement
🔒 POST /inventory/gear Ajouter équipement
🔒 GET /inventory/gear/:id Détail équipement
🔒 PUT /inventory/gear/:id Modifier
🔒 DELETE /inventory/gear/:id Supprimer
🔒 POST /inventory/gear/:id/images Upload image
🔒 DELETE /inventory/gear/:id/images/:img_id Supprimer image
🔒 POST /inventory/gear/:id/documents Upload document
🔒 GET /inventory/gear/:id/documents Lister documents
🔒 DELETE /inventory/gear/:id/documents/:docId Supprimer document
🔒 POST /inventory/gear/:id/repairs Ajouter réparation
🔒 GET /inventory/gear/:id/repairs Lister réparations
🔒 DELETE /inventory/gear/:id/repairs/:repairId Supprimer réparation

20. Cloud personnel (/cloud)

Fichier : routes_cloud.go

Méthode Route Description
🔓 GET /cloud/shared/:token Fichier partagé
🔒 GET /cloud/folders Lister dossiers
🔒 POST /cloud/folders Créer dossier
🔒 PUT /cloud/folders/:id Renommer dossier
🔒 DELETE /cloud/folders/:id Supprimer dossier
🔒 GET /cloud/files Lister fichiers
🔒 POST /cloud/files Upload fichier
🔒 GET /cloud/files/:id Détail fichier
🔒 DELETE /cloud/files/:id Supprimer fichier
🔒 GET /cloud/files/:id/stream Streamer fichier
🔒 POST /cloud/files/:id/publish Publier comme piste
🔒 GET /cloud/files/:id/versions Lister versions
🔒 POST /cloud/files/:id/versions Créer version
🔒 POST /cloud/files/:id/restore/:version Restaurer version
🔒 POST /cloud/files/:id/share Partager fichier
🔒 GET /cloud/quota Quota stockage

21. Abonnements (/subscriptions)

Fichier : routes_subscription.go

Méthode Route Description
🔓 GET /subscriptions/plans Lister forfaits
🔓 GET /subscriptions/plans/:id Détail forfait
🔒 GET /subscriptions/me Mon abonnement
🔒 POST /subscriptions/subscribe S'abonner
🔒 POST /subscriptions/cancel Annuler
🔒 POST /subscriptions/reactivate Réactiver
🔒 PUT /subscriptions/billing-cycle Changer cycle
🔒 GET /subscriptions/invoices Factures
🔒 GET /subscriptions/history Historique

22. Distribution (/distributions)

Fichier : routes_distribution.go

Méthode Route Description
🔒 POST /distributions/submit Soumettre distribution
🔒 GET /distributions Lister distributions
🔒 GET /distributions/:id Détail
🔒 GET /distributions/:id/status-history Historique statut
🔒 POST /distributions/:id/remove Retirer
🔒 GET /tracks/:id/distributions Distributions d'une piste
🔒 GET /creators/me/external-royalties Royalties externes

23. Éducation (/courses, /enrollments, /lessons, /certificates)

Fichier : routes_education.go

Endpoints publics

Méthode Route Description
🔓 GET /courses Cours publiés
🔓 GET /courses/:id Détail cours
🔓 GET /courses/:id/lessons Leçons du cours
🔓 GET /courses/:id/reviews Avis
🔓 GET /courses/slug/:slug Cours par slug
🔓 GET /certificates/:code Vérifier certificat

Endpoints protégés

Méthode Route Description
🔒 POST /courses Créer cours
🔒 PUT /courses/:id Modifier cours
🔒 DELETE /courses/:id Supprimer cours
🔒 POST /courses/:id/publish Publier
🔒 POST /courses/:id/archive Archiver
🔒 POST /courses/:id/lessons Créer leçon
🔒 PUT /courses/:id/lessons/:lesson_id Modifier leçon
🔒 DELETE /courses/:id/lessons/:lesson_id Supprimer leçon
🔒 POST /courses/:id/lessons/reorder Réordonner leçons
🔒 POST /courses/:id/lessons/:lesson_id/video Upload vidéo
🔒 POST /courses/:id/enroll S'inscrire
🔒 GET /courses/:id/progress Progression
🔒 POST /courses/:id/certificate Obtenir certificat
🔒 POST /courses/:id/reviews Laisser avis
🔒 GET /enrollments Mes inscriptions
🔒 POST /lessons/:lesson_id/progress Mise à jour progression
🔒 GET /certificates Mes certificats
🔒 GET /creators/me/courses Mes cours (créateur)

24. Tags & Suggestions (/tags)

Fichier : routes_tag.go

Méthode Route Description
🔒 GET /tags/suggest Suggestions de tags

25. Développeur (/developer)

Fichier : routes_developer.go

Méthode Route Description
🔒 GET /developer/api-keys Lister clés API
🔒 POST /developer/api-keys Créer clé API
🔒 DELETE /developer/api-keys/:id Supprimer clé API

26. Sessions (/sessions)

Fichier : routes_core.go

Méthode Route Description
🔒 POST /sessions/logout Déconnexion
🔒 POST /sessions/logout-all Déconnexion tous appareils
🔒 POST /sessions/logout-others Déconnexion autres appareils
🔒 GET /sessions Sessions actives
🔒 DELETE /sessions/:session_id Révoquer session
🔒 GET /sessions/stats Stats sessions
🔒 POST /sessions/refresh Rafraîchir session

27. Uploads (/uploads)

Fichier : routes_core.go

Méthode Route Description
🔓 GET /upload/limits Limites upload
🔓 GET /upload/validate-type Valider type fichier
🔒 POST /uploads/ Upload fichier
🔒 POST /uploads/batch Upload batch
🔒 GET /uploads/:id/status Statut upload
🔒 GET /uploads/:id/progress Progression
🔒 DELETE /uploads/:id Supprimer upload
🔒 GET /uploads/stats Stats uploads

28. Notifications (/notifications)

Fichier : routes_core.go

Méthode Route Description
🔒 GET /notifications Mes notifications
🔒 GET /notifications/unread-count Non lues
🔒 GET /notifications/preferences Préférences
🔒 PUT /notifications/preferences Modifier préférences
🔒 POST /notifications/push/subscribe S'abonner push
🔒 POST /notifications/:id/read Marquer lue
🔒 POST /notifications/read-all Tout marquer lu
🔒 DELETE /notifications/:id Supprimer
🔒 DELETE /notifications Tout supprimer

29. Audit (/audit)

Fichier : routes_core.go

Méthode Route Description
🔒 GET /audit/logs Rechercher logs
🔒 GET /audit/stats Stats audit
🔒 GET /audit/activity Activité utilisateur
🔒 GET /audit/suspicious Activité suspecte
🔒 GET /audit/ip/:ip Activité d'une IP
🔒 GET /audit/logs/:id Détail log
🔒 POST /audit/cleanup Nettoyage anciens logs

30. Santé & Métriques (publics)

Fichier : routes_core.go

Méthode Route Description
🔓 GET /health Santé basique
🔓 GET /health/deep Santé approfondie
🔓 GET /healthz Liveness probe
🔓 GET /readyz Readiness probe
🔓 GET /api/v1/status Statut API
🔓 GET /api/v1/csrf-token Token CSRF
🔓 POST /api/v1/logs/frontend Logs frontend ⚡
🔓 GET /api/v1/announcements/active Annonces actives
GET /metrics Prometheus (protégé metrics middleware)

31. Administration générale (/admin)

Fichier : routes_core.go

Méthode Route Description
🔒👑 GET /admin/audit/logs Logs audit admin
🔒👑 GET /admin/audit/stats Stats audit admin
🔒👑 GET /admin/audit/suspicious Activité suspecte
🔒👑 GET /admin/reports Signalements
🔒👑 POST /admin/reports/:id/resolve Résoudre signalement
🔒👑 PUT /admin/maintenance Mode maintenance
🔒👑 GET /admin/maintenance Statut maintenance
🔒👑 GET /admin/announcements Lister annonces
🔒👑 POST /admin/announcements Créer annonce
🔒👑 DELETE /admin/announcements/:id Supprimer annonce
🔒👑 GET /admin/transfers Transferts
🔒👑 POST /admin/transfers/:id/retry Relancer transfert
🔒👑 POST /admin/auth/unlock-account Débloquer compte
🔒👑 POST /admin/search/reindex Réindexer Elasticsearch
🔒👑 GET /admin/feature-flags Feature flags
🔒👑 PUT /admin/feature-flags/:name Toggle feature flag

32. Routes internes (entre services)

Méthode Route Description
POST /internal/tracks/:id/stream-ready Callback stream (header X-Stream-Secret)
POST /internal/stream-events Événements stream

Serveur Streaming Rust (Axum)

Voir SERVEUR_STREAMING_RUST pour le détail complet.

Méthode Route Description
🔓 GET / Info serveur
🔓 GET /health Santé
🔓 GET /healthz Liveness
🔓 GET /readyz Readiness
🔓 GET /metrics Prometheus
🔓 GET /stream/{filename} Stream audio (signature)
POST /internal/jobs/transcode Job transcoding (clé interne)
🔒 POST /v1/stream/transcode Initier transcoding
🔒 GET /v1/stream/job/{id} Statut job
🔒 GET /v1/stream/hls/{job_id}/index.m3u8 Playlist HLS
🔒 GET /v1/stream/hls/{job_id}/{segment} Segment HLS
🔒 GET /hls/{track_id}/master.m3u8 Master playlist
🔒 GET /hls/{track_id}/{quality}/playlist.m3u8 Playlist qualité
🔒 GET /hls/{track_id}/{quality}/{segment} Segment qualité
🔓 GET /ws WebSocket streaming

Pile de middlewares globaux (ordre d'exécution)

  1. CORS — Validation des origines
  2. Cache Headers — En-têtes CDN
  3. Maintenance Mode — Retourne 503 sauf /health et /admin
  4. Request Logger — Logs structurés
  5. Prometheus Metrics — Compteurs/histogrammes
  6. Sentry Recovery — Capture d'erreurs
  7. Security Headers — HSTS, CSP, X-Content-Type-Options
  8. CCPA Header — Sec-GPC
  9. Audit Middleware — Auto-log POST/PUT/DELETE
  10. API Monitoring — Suivi pannes/alertes
  11. Error Handler — Stack traces en dev/DEBUG
  12. Recovery — Récupération après panic
  13. Request ID — UUID par requête
  14. Global Timeout — Timeout global
  15. DDoS Rate Limiting — 1000 req/s global, 100/s par IP
  16. Rate Limiter — Général
  17. Response Cache — Redis, TTL 5-15 min

Documents liés