====== Sprint 14 — API Publique & Écosystème ======
===== Objectif du Sprint =====
Ouvrir la plateforme à l'écosystème externe afin de permettre :
* Les intégrations partenaires
* Les synchronisations tierces
* Les applications externes
* Les places de marché
* Les connecteurs métiers
* L'automatisation inter-systèmes
À l'issue du Sprint 14 :
* Une API publique sécurisée est disponible
* Les partenaires peuvent s'intégrer
* Les webhooks sont opérationnels
* Les clés API sont administrables
* Les intégrations tierces sont industrialisées
* Une marketplace de connecteurs est disponible
Ce sprint transforme la plateforme en véritable plateforme ouverte.
----
====== Périmètre ======
===== Modules concernés =====
PublicApiModule
PartnerModule
WebhookModule
ApiKeysModule
MarketplaceModule
DeveloperPortalModule
----
====== Architecture cible ======
Partenaires
↓
API Gateway
↓
Public API
├── Reservations
├── Properties
├── Customers
├── Contracts
├── Payments
└── Reporting
↓
Webhooks
↓
Applications tierces
----
====== User Stories ======
===== US-1401 : Générer une clé API =====
**En tant qu'administrateur**
Je souhaite créer une clé API
Afin d'autoriser un partenaire à accéder aux données.
----
===== Endpoint =====
POST /api-keys
----
===== Informations =====
Nom
Description
Scopes
Date expiration
----
===== Exemple =====
pk_live_xxxxxxxxxxxxxxxxxxxx
----
====== US-1402 : Révoquer une clé API ======
===== Endpoint =====
DELETE /api-keys/{id}
----
====== US-1403 : Consulter les clés API ======
===== Endpoint =====
GET /api-keys
----
===== Informations =====
Nom
Scopes
Dernière utilisation
Expiration
Statut
----
====== Gestion des partenaires ======
===== US-1404 : Créer un partenaire =====
===== Endpoint =====
POST /partners
----
===== Données =====
Nom
Type
Contact
Site web
----
===== Types =====
CHANNEL_MANAGER
OTA
ERP
CRM
COMPTABILITÉ
AUTRE
----
====== US-1405 : Gérer les accès partenaires ======
===== Permissions =====
READ_PROPERTIES
READ_RESERVATIONS
READ_CUSTOMERS
READ_PAYMENTS
READ_REPORTING
----
====== API Publique ======
===== US-1406 : Consulter les biens =====
===== Endpoint =====
GET /public-api/properties
----
===== Filtres =====
Ville
Capacité
Prix
Disponibilité
----
====== US-1407 : Consulter les réservations ======
===== Endpoint =====
GET /public-api/reservations
----
====== US-1408 : Créer une réservation ======
===== Endpoint =====
POST /public-api/reservations
----
===== Cas d'usage =====
Site partenaire
↓
Création réservation
↓
Synchronisation plateforme
----
====== US-1409 : Consulter les disponibilités ======
===== Endpoint =====
GET /public-api/availability
----
====== US-1410 : Consulter les tarifs ======
===== Endpoint =====
GET /public-api/rates
----
====== Authentification API ======
===== Méthodes =====
API Key
OAuth2 Client Credentials
----
===== Header =====
Authorization: Bearer {token}
----
====== Webhooks ======
===== US-1411 : Créer un webhook =====
===== Endpoint =====
POST /webhooks
----
===== Données =====
URL
Événements
Secret
----
====== US-1412 : Recevoir les événements ======
===== Événements =====
ReservationCreated
ReservationUpdated
ReservationCancelled
ContractSigned
PaymentSucceeded
InvoiceGenerated
----
===== Exemple =====
{
"event": "ReservationCreated",
"timestamp": "2028-01-01T10:00:00Z",
"data": {}
}
----
====== US-1413 : Rejouer un webhook ======
===== Endpoint =====
POST /webhooks/{id}/replay
----
====== US-1414 : Consulter les livraisons ======
===== Endpoint =====
GET /webhooks/{id}/deliveries
----
===== Informations =====
Date
Payload
Réponse HTTP
Tentatives
----
====== Marketplace ======
===== US-1415 : Consulter les connecteurs =====
===== Endpoint =====
GET /marketplace/connectors
----
===== Connecteurs initiaux =====
Stripe
MangoPay
Yousign
DocuSign
SendGrid
Twilio
Slack
Google Calendar
----
====== US-1416 : Installer un connecteur =====
===== Workflow =====
Marketplace
↓
Installation
↓
Configuration
↓
Activation
----
====== Portail Développeur ======
===== US-1417 : Consulter la documentation =====
===== Contenu =====
OpenAPI
Guides
SDK
Exemples
----
===== Endpoint =====
/developers
----
====== US-1418 : Générer un SDK =====
===== Langages =====
TypeScript
Java
C#
PHP
Python
----
====== Limitation & Sécurité ======
===== US-1419 : Rate Limiting =====
===== Politique =====
100 requêtes/minute
par clé API
----
===== Réponse =====
429 Too Many Requests
----
====== US-1420 : Journalisation API =====
===== Informations =====
Clé API
Endpoint
Temps réponse
IP
Résultat
----
====== Modèle Prisma ======
===== ApiKey =====
model ApiKey {
id String @id @default(uuid())
tenantId String
name String
keyHash String
scopes String[]
expiresAt DateTime?
active Boolean
}
----
===== Partner =====
model Partner {
id String @id @default(uuid())
name String
partnerType String
active Boolean
}
----
===== Webhook =====
model Webhook {
id String @id @default(uuid())
tenantId String
endpointUrl String
secret String
active Boolean
}
----
===== WebhookDelivery =====
model WebhookDelivery {
id String @id @default(uuid())
webhookId String
eventType String
statusCode Int?
deliveredAt DateTime?
}
----
===== Connector =====
model Connector {
id String @id @default(uuid())
code String
name String
category String
active Boolean
}
----
====== Architecture Backend ======
src/modules/ecosystem
├── public-api
│
├── api-keys
│
├── partners
│
├── webhooks
│
├── marketplace
│
└── developers
----
====== Domain Services ======
ApiKeyService
PartnerService
WebhookService
MarketplaceService
DeveloperPortalService
----
====== Événements métier ======
===== ApiKeyCreated =====
ApiKeyCreated
----
===== WebhookDelivered =====
WebhookDelivered
----
===== ConnectorInstalled =====
ConnectorInstalled
----
====== Swagger ======
===== Documentation =====
Deux niveaux :
Swagger Interne
Swagger Public
----
===== Tags =====
PublicAPI
Partners
ApiKeys
Webhooks
Marketplace
----
===== Volume API =====
Environ :
45 endpoints
----
====== Frontend ======
===== Pages =====
/developers
/developers/api-keys
/developers/webhooks
/developers/marketplace
/developers/sdk
----
===== Composants =====
ApiKeyTable
WebhookMonitor
ConnectorMarketplace
SdkGenerator
DeveloperConsole
----
====== Dashboard Développeur ======
===== KPI =====
Appels API
Erreurs
Temps réponse
Webhooks
Connecteurs actifs
----
====== Tests ======
===== Unitaires =====
ApiKeyService
WebhookService
PartnerService
MarketplaceService
----
===== Intégration =====
API Key
↓
Appel API
↓
Webhook
↓
Synchronisation
----
===== E2E =====
Création clé API
↓
Création réservation externe
↓
Webhook envoyé
↓
Réception partenaire
↓
Historisation
----
====== Définition de terminé ======
Le Sprint 14 est terminé lorsque :
* API publique opérationnelle
* OAuth2 opérationnel
* Clés API opérationnelles
* Webhooks opérationnels
* Marketplace opérationnelle
* Documentation développeur disponible
* Swagger public disponible
* Tests verts
* CI verte
----
====== Livrables ======
* PublicApiModule
* PartnerModule
* WebhookModule
* ApiKeysModule
* MarketplaceModule
* DeveloperPortalModule
* Swagger Public
* SDK Generator
* DTO
* Tests
----
====== Bilan Release 3.0 ======
À l'issue du Sprint 14 :
* Plateforme SaaS multi-agences
* API publique complète
* Écosystème extensible
* Connecteurs partenaires
* Marketplace d'intégrations
* Portail développeur
La solution devient une véritable plateforme ouverte capable de s'intégrer à l'écosystème numérique des agences immobilières et de location.
----
====== Sprint suivant ======
===== Sprint 15 — Multi-sites, Marque Blanche & Réseau d'Agences =====
Objectif :
Permettre l'exploitation de plusieurs agences, marques et sites web depuis une plateforme unique.
Modules concernés :
MultiSiteModule
WhiteLabelModule
BrandingModule
AgencyNetworkModule
DomainManagementModule
Fonctionnalités :
* Multi-sites
* Marque blanche
* Domaines personnalisés
* Gestion réseau d'agences
* Thèmes graphiques
* Mutualisation des biens
* Réservations inter-agences
À l'issue du Sprint 15, la plateforme pourra être commercialisée à grande échelle auprès de réseaux d'agences et de franchises.