Table des matières

Sprint 14 — API Publique & Écosystème

Objectif du Sprint

Ouvrir la plateforme à l'écosystème externe afin de permettre :

À l'issue du Sprint 14 :

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

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 :


Livrables


Bilan Release 3.0

À l'issue du Sprint 14 :

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 :

À l'issue du Sprint 15, la plateforme pourra être commercialisée à grande échelle auprès de réseaux d'agences et de franchises.

DokuWiki Appliance - Powered by TurnKey Linux