Concevoir une API personnalisée : bonnes pratiques d’architecture
Les API personnalisées s’intègrent au cœur de la stratégie d’architecture de la Power Platform. Leur conception doit être guidée par les principes d’encapsulation, de gouvernance et de réutilisabilité. Une API bien définie devient un contrat stable entre la logique métier et les applications consommatrices.
Découplage logique métier / interface utilisateur
- Centraliser la logique métier dans Dataverse plutôt que dans les formulaires ou les Power Automate.
- Permettre l’appel uniforme depuis plusieurs canaux (Power Apps, portails, ERP, etc.).
- Assurer l’indépendance vis-à-vis des évolutions de l’interface.
Respect des principes ALM
- Intégrer chaque Custom API dans une solution Dataverse (non isolée).
- Utiliser des solutions gérées pour les environnements de production.
- Versionner les fichiers XML associés pour un déploiement cohérent via pipeline DevOps.
Gestion des dépendances
- Documenter les entités et plug-ins associés à chaque API.
- Vérifier les dépendances croisées (ex : plusieurs APIs appelant la même logique).
- Contrôler les interactions transactionnelles (rollback, isolation level).
Sécurité et gouvernance
- Restreindre l’accès via des rôles de sécurité Dataverse spécifiques.
- Utiliser le paramètre BoundEntity uniquement si nécessaire pour restreindre le contexte d’exécution.
- Journaliser l’utilisation avec le Plug-in Trace Log et, si besoin, Application Insights.
Performance et scalabilité
- Privilégier les exécutions synchrones pour les opérations critiques, asynchrones pour les traitements lourds.
- Optimiser les requêtes Dataverse (RetrieveMultiple, FetchXML) dans le handler.
- Définir des paramètres légers (limiter les volumes de données en entrée/sortie).
Standardisation et documentation
- Respecter une convention de nommage :
org_prefix_ActionName(ex :mar_custom_CalculateMargin). - Ajouter des descriptions claires pour chaque paramètre et chaque message.
- Centraliser la documentation dans le Centre d’excellence (CoE) Power Platform ou Azure DevOps Wiki.
En appliquant ces principes, les API personnalisées deviennent des briques fiables et gouvernables, contribuant à une architecture orientée services, où chaque opération métier est exposée de manière standardisée et traçable.