API Endpoints

Vue d'ensemble de tous les endpoints API exposes par Place API, organises par module et domaine fonctionnel.

API Endpoints

Place API expose ses endpoints via des Minimal APIs ASP.NET Core. Tous les endpoints suivent le pattern de route :

/api/v{version}/{module}/{resource}

Le prefixe de base est defini dans EndpointConfig.BaseApiPath (typiquement /api/v1).

Documentation interactive

L'API est documentee et testable via deux interfaces :

  • Swagger UI : /swagger
  • Scalar : /scalar/v1

En mode developpement, un endpoint de debug est egalement disponible :

  • Debug endpoints : GET /debug/endpoints -- liste toutes les routes enregistrees

Vue d'ensemble des endpoints

Module Identity -- Authentication

MethodeRouteNomAuth requise
POST/api/v1/identity/auth/loginLoginNon
POST/api/v1/identity/auth/registerRegisterNon
POST/api/v1/identity/auth/refreshRefreshTokenNon
POST/api/v1/identity/auth/logoutLogoutOui
POST/api/v1/identity/auth/confirm-emailConfirmEmailNon
POST/api/v1/identity/auth/resend-confirmationResendConfirmationNon
POST/api/v1/identity/auth/socialSocialLoginNon
POST/api/v1/identity/auth/change-passwordChangePasswordOui

Module Identity -- Password Recovery

MethodeRouteNomAuth requise
POST/api/v1/identity/auth/forgot-passwordForgotPasswordNon
POST/api/v1/identity/auth/otp/verifyVerifyOtpNon
POST/api/v1/identity/auth/otp/resendResendOtpNon
POST/api/v1/identity/auth/reset-passwordResetPasswordNon

Module Identity -- Two-Factor Authentication

MethodeRouteNomAuth requise
POST/api/v1/identity/auth/login/2faLogin2FaCommandNon
POST/api/v1/identity/auth/2fa/totp/setupTotpSetupCommandOui
POST/api/v1/identity/auth/2fa/totp/verifyTotpVerifyCommandOui
POST/api/v1/identity/auth/2fa/totp/disableTotpDisableCommandOui
POST/api/v1/identity/auth/2fa/recovery-codes/regenerateRegenerateRecoveryCodesCommandOui

Module Identity -- Sessions

MethodeRouteNomAuth requise
GET/api/v1/identity/auth/sessionsGetMySessionsOui
DELETE/api/v1/identity/auth/sessions/{sessionId}RevokeSessionOui
DELETE/api/v1/identity/auth/sessionsRevokeAllOtherSessionsOui

Module Identity -- Push Tokens

MethodeRouteNomAuth requise
POST/api/v1/identity/users/me/push-tokensRegisterPushTokenCommandOui
DELETE/api/v1/identity/users/me/push-tokensUnregisterPushTokenCommandOui

Module Identity -- Linked Accounts

MethodeRouteNomAuth requise
GET/api/v1/identity/users/me/linked-accountsGetLinkedAccountsOui
POST/api/v1/identity/users/me/linked-accountsLinkAccountOui
DELETE/api/v1/identity/users/me/linked-accounts/{provider}UnlinkAccountOui

Module Identity -- Security Settings

MethodeRouteNomAuth requise
GET/api/v1/identity/users/me/securityGetSecuritySettingsQueryOui
PATCH/api/v1/identity/users/me/securityUpdateSecuritySettingsCommandOui

Module Identity -- JWKS

MethodeRouteNomAuth requise
GET/.well-known/jwks.jsonGetJwksNon

Module Identity -- Admin (Users)

MethodeRouteNomPermission requise
POST/api/v1/identity/admin/users/{userId}/activateActivateUserusers.activate
POST/api/v1/identity/admin/users/{userId}/deactivateDeactivateUserusers.deactivate

Module Identity -- Admin (Sessions)

MethodeRouteNomPermission requise
GET/api/v1/identity/admin/users/{userId}/sessionsAdminGetUserSessionssessions.view_any
DELETE/api/v1/identity/admin/sessions/{sessionId}AdminRevokeSessionsessions.revoke_any
DELETE/api/v1/identity/admin/users/{userId}/sessionsAdminRevokeAllUserSessionssessions.revoke_any

Module Audit -- Admin

MethodeRouteNomAuth requise
GET/api/v1/audit/admin/logsGetAuditLogsRole Admin
GET/api/v1/audit/admin/logs/{id}GetAuditLogByIdRole Admin
GET/api/v1/audit/admin/logs/summaryGetAuditSummaryRole Admin
GET/api/v1/audit/admin/logs/correlation/{correlationId}GetAuditLogsByCorrelationRole Admin
GET/api/v1/audit/admin/logs/trace/{traceId}GetAuditLogsByTraceRole Admin
GET/api/v1/audit/admin/logs/exceptionsGetExceptionAuditLogsRole Admin
GET/api/v1/audit/admin/logs/securityGetSecurityAuditLogsRole Admin

SignalR Hubs

HubRouteAuth requiseDescription
AuditHub/hubs/auditOui (Admin)Notifications temps reel des logs audit

Rate Limiting

Chaque groupe d'endpoints est soumis a des politiques de rate limiting configurables via appsettings.json :

PolitiqueLimiteFenetreEndpoints concernes
Registration5/min60sRegister
Auth10/min60sLogin, Refresh, ForgotPassword, etc.
SessionsRead30/min60sGetMySessions
SessionsRevoke10/min60sRevokeSession, RevokeAllOtherSessions
AdminSessions50/min60sAdmin session endpoints
TwoFactor5/5min300s2FA endpoints
Global100/min60sTous les endpoints

Versioning

L'API utilise Asp.Versioning avec des version sets par module. La version actuelle est 1.0. Les endpoints du module Audit utilisent un ApiVersionSet nomme "Audit".