====== 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.