Référentiel UBSI 2026 - Documentation
Bienvenue dans la documentation de l'application Référentiel UBSI.
À propos
L'application Référentiel permet de gérer les données de référence de l'écosystème Fnac/Darty :
- Produits : Catalogue complet avec EAN, catégories, prix, caractéristiques
- Fournisseurs : Partenaires commerciaux avec statuts et informations contractuelles
- Entrepôts : Sites de stockage et logistique avec capacités et spécialisations
- Magasins : Points de vente avec types, services disponibles et caractéristiques
- Relations : Gestion optimisée des relations fournisseur-produits (prix, délais, packaging)
Documentation disponible
Pour les intégrateurs et développeurs externes
- Référence complète de l'API : Documentation exhaustive de tous les endpoints, paramètres et exemples
- Guide d'intégration : Cas d'usage courants, exemples de code, bonnes pratiques
- Schémas et Enums : Tous les types de données, enums et structures
Pour les développeurs de l'équipe
- Documentation interne : Architecture, conventions, workflows de développement
- Diagramme UML de la base de données : Schéma relationnel complet
Liens utiles
API et Swagger
- Swagger UI: https://referentiel.staging.ubsi.fr/api/swagger
- Swagger JSON: https://referentiel.staging.ubsi.fr/api/swagger/json
- Swagger YAML: https://referentiel.staging.ubsi.fr/api/swagger/yaml
Applications
- Frontend (staging): https://referentiel.staging.ubsi.fr/
- API publique:
https://referentiel.staging.ubsi.fr/api/publique/...
Fonctionnalités principales
Gestion complète du catalogue
- CRUD complet sur tous les domaines métier (produits, fournisseurs, entrepôts, magasins)
- Opérations en lot (batch update/delete) jusqu'à 500 éléments
- Import JSON via fichiers
- Soft-delete pour préserver l'historique
Recherche et filtrage avancés
- Pagination : Toutes les listes supportent la pagination (1-100 items par page)
- Tri multi-critères : Tri ascendant/descendant sur tous les champs pertinents
- Recherche textuelle : Recherche full-text sur les champs principaux
- Filtres MUI DataGrid : Filtrage avancé compatible avec les interfaces DataGrid
- Filtres métier : Filtres spécifiques par catégorie, statut, marque, etc.
- Sélection de champs : Récupérer uniquement les champs nécessaires
Relations optimisées
- Gestion des relations fournisseur-produits avec table de jointure dédiée
- Prix fournisseurs, délais de livraison, packaging, quantités minimales
- Statuts de relation (actif, préféré, secours, etc.)
- Extension de données via
includeparameter
Intégrité et qualité des données
- Validation stricte des champs obligatoires
- Contraintes d'unicité (EAN, codes fournisseurs)
- Enums métier pour garantir la cohérence
- Soft-delete pour l'intégrité référentielle
- Timestamps automatiques (creation, modification)
Architecture technique
Stack
- Backend : NestJS (TypeScript) + PostgreSQL + drizzle-orm
- Frontend : React + Vite + Material-UI (MUI)
- Infrastructure : Docker + Nginx (reverse proxy)
- Documentation : Docusaurus + Swagger/OpenAPI
API Design
- REST : Conventions RESTful strictes
- JSON : Format d'échange unique
- Pagination : Réponses paginées pour les gros volumes
- Versionning : Préfixe
/api/publique/pour isolation - Documentation : Auto-générée via decorators Swagger
Base de données
- PostgreSQL : SGBD relationnel
- Migrations : Gérées par drizzle-kit
- ORM : drizzle-orm avec DrizzleService pour CRUD standardisé
- Soft-delete : Suppression logique pour toutes les entités
Démarrage rapide
Pour intégrer l'API dans votre application
- Consultez le Guide d'intégration pour les cas d'usage courants
- Explorez la Référence API pour les détails des endpoints
- Référez-vous aux Schémas pour les structures de données
- Testez vos appels via le Swagger UI
Exemple minimal
// Configuration
const API_BASE = 'https://referentiel.staging.ubsi.fr/api/publique';
// Récupérer tous les produits actifs
const produits = await fetch(`${API_BASE}/produits?statutProduit=actif`).then(
(res) => res.json()
);
// Créer un nouveau produit
const nouveauProduit = await fetch(`${API_BASE}/produits`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
ean: '1234567890123',
nom: 'Nouveau produit',
prixDeVenteCents: 15000,
}),
}).then((res) => res.json());
Support et contact
Pour toute question ou problème :
- Consultez la documentation complète dans cette section
- Testez vos endpoints via le Swagger UI
- Référez-vous aux exemples dans le guide d'intégration
Note: Cette documentation est maintenue à jour avec les évolutions de l'API. Dernière mise à jour : Janvier 2026.