Table des matières
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.