Design-First API : pourquoi et comment

18
Meetup Paris API API « Design First » : Pourquoi et Comment 28 Avril 2016 @Mangopay Alexandre ESTELA [email protected] @alx_estela

Transcript of Design-First API : pourquoi et comment

Page 1: Design-First API : pourquoi et comment

Meetup Paris API

API « Design First » : Pourquoi et Comment

28 Avril 2016 @Mangopay

Alexandre ESTELA

[email protected]

@alx_estela

Page 2: Design-First API : pourquoi et comment

2

C’est l’histoire d’un développeur et coach…

Java

Agile

Page 3: Design-First API : pourquoi et comment

3

Au commencement étaient les Web Services SOAP

Page 4: Design-First API : pourquoi et comment

4

Un jour vinrent les API REST

Page 5: Design-First API : pourquoi et comment

POURQUOI

l’approche “Code First”

est peu adaptée

pour les API

Page 6: Design-First API : pourquoi et comment

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

Page 7: Design-First API : pourquoi et comment

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)

Page 8: Design-First API : pourquoi et comment

EN QUOI

l’approche “Design First”

est davantage adaptée

pour les API

Page 9: Design-First API : pourquoi et comment

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

Page 10: Design-First API : pourquoi et comment

10

Une API « Design First » encourage la collaboration

Version de

contrat d’API

Change

Request

Page 11: Design-First API : pourquoi et comment

COMMENT

l’approche “Design First”

peut être mise en oeuvre

pour une API

Page 12: Design-First API : pourquoi et comment

12

Les outils de design & de co-design d’API s’améliorent

Page 13: Design-First API : pourquoi et comment

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…

Page 14: Design-First API : pourquoi et comment

14

Les rituels de collaboration guident leur mise en œuvre

Continuous

Delivery

Sprint

Planning

Démonstrations

Autre rituel

régulier de

revue

Page 15: Design-First API : pourquoi et comment

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)

Page 16: Design-First API : pourquoi et comment

Conclusion

Page 17: Design-First API : pourquoi et comment

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

Page 18: Design-First API : pourquoi et comment

Merci pour votre attention