6. 6
Le design de l’API est une phase essentielle
Design FonctionnelDesign Technique
Granularité des
ressources
Attributs
Types & Enums
Validation
Relations & Héritage
Le design de l’API doit d’abord satisfaire vos
consommateurs techniques et fonctionnels
URIs & Verbes
Media Types
Sécurité
Performance
Versioning
HATEOAS
7. 7
L’approche « Code First » présente des limites
Limite de
personnalisation
du contrat d’API
généré
Limite de la
collaboration avec
les consommateurs
(fonctionnels
notamment)
9. 9
Une API « Design First » n’est pas influencée par son implémentation
Couche API
Liberté de Design Technique ET Fonctionnel
Couche Implémentation
Application(s)
API Gateway
Middleware…
Groupe de
consommateurs
Groupe de
consommateurs
Groupe de
consommateurs
10. 10
Une API « Design First » encourage la collaboration
Version de
contrat d’API
Change
Request
13. 13
Les outils pour lier contrat et implémentation évoluent
https://github.com/swagger-api/swagger-inflector (Java)
https://github.com/swagger-api/swagger-node (Node.js)
https://github.com/zalando/connexion (Python)
Scan du
contrat de l’API
Implémentation
générée (mock)
Implémentation
codée et associée
Prise en charge de la validation, sécurité,
sérialisation, documentation, versioning…
14. 14
Les rituels de collaboration guident leur mise en œuvre
Continuous
Delivery
Sprint
Planning
Démonstrations
Autre rituel
régulier de
revue
15. 15
Le Design Collaboratif de l’API devient un process continu
Design d’une
nouvelle version
d’API
Soumission du
draft d’API
mockée + doc
Revue de la
nouvelle version
d’API
Implémentation
et déploiement
des évolutions
Mesure de
l’usage
(quanti + quali)
17. 17
API = Application Programming Interface
Générer son API, c’est potentiellement être guidé par l’implémentation
Le design de l’API doit être pensé et optimisé pour les consommateurs
Cela requiert des outils « Design First » et des rituels de collaboration
Adoption de l’API
Importance
du Design
de l’API
Démarrage