SlideShare ist ein Scribd-Unternehmen logo
1 von 57
Downloaden Sie, um offline zu lesen
DOCUMENTER, TESTER, ET
BOUCHONNER VOS WEBSERVICES
AVEC UN SEUL OUTIL
C’est possible !
Nantes, jeudi 14 juin 2018
2//
Julie ROLLIN-MOUSTÉOU
Formation
Expériences
Développement JAVA chez Amadeus - Conseil en SI chez Deloitte -
Business Development chez Tech4Team (édition de logiciels) -
Product Management chez FABERNOVEL TECHNOLOGIES.
Projets
Senior Product Manager
# Gestion de projet
# Spécifications
fonctionnelles
# Webservices
# Process - Formation
3//
Qui a déjà rencontré un
crash en front dû à une
réponse de webservice
non conforme à la
spécification initiale ?
4//
Qui a déjà entendu parlé
des JSON Schema ?
5//
01 //
Des problèmes récurrents ?
6//
Design UX/UI
IS legacy opening and
integraton
Front end web
Big Data, Smart
Data, Fast Data
Back end web
AI
(chat bots, machine
learning…)
SaaS - PaaS / Cloud IOT
Mobile Apps
(development,
product
management)
API management
Front end web
Architecture
Devops
7//
Clients, Product/Project Managers et Développeurs
Quand un client rencontre un crash sur son application mobile...
Mon application
a crashé !!!
8//
Clients, Product/Project Managers et Développeurs
En tant qu’interlocuteur opérationnel privilégié du client, le Project Manager cherche la source du problème
Nous investiguons la
source du problème.
Mon application
a crashé !!!
9//
Clients, Product/Project Managers et Développeurs
Le Project Manager regarde les logs du crash et identifie que le crash se produit lors d’un appel au webservice
D’où cela peut-il bien venir ?
Regardons les logs...
Cela semble lié à un appel côté
webservice !
Mon application
a crashé !!!
Nous investiguons la
source du problème.
10//
Clients, Product/Project Managers et Développeurs
Le Project Manager demande à son développeur la source exacte du problème et comment il peut régler ce crash !
Tu pourrais m’en dire plus ?
Et tu pourrais corriger le souci stp ?
J’ai remarqué que le crash se produisait
lorsqu’on faisait cet appel…
C’est assez critique pour
ma cliente...
11//
Clients, Product/Project Managers et Développeurs
Le développeur donne son diagnostic...
yes je vois tout à fait pourquoi
l’application crash à cet endroit précis...
12//
Clients, Product/Project Managers et Développeurs
Le développeur donne son diagnostic : la spécification webservice initiale ne correspond pas à la réponse actuelle !
… c’est parce que la réponse actuelle que je reçois du webservice n’est pas la même que
celle contenue dans les spécifications utilisées au moment du développement !
13//
Clients, Product/Project Managers et Développeurs
Chacun se demande quelle est la source de vérité… ???
À quelles spécifications
faisons-nous référence ?
À quelles spécifications
faisons-nous référence ?
À quelles spécifications
faisons-nous référence ?
C’est la version 1.5.0
envoyée début Avril non ?
La dernière que j’ai reçue
c’est la version 1.9.8 !
Moi j’avais la
version 1.9.7...
14//
Hier : différents outils pour documenter, tester ou bouchonner des webservices
#2
TESTER
#1
DOCUMENTER
#3
BOUCHONNER
15//
Hier : différents outils pour documenter, tester ou bouchonner des webservices
DOCUMENTER
(e.g. Word, Swagger)
16//
Hier : différents outils pour documenter, tester ou bouchonner des webservices
DOCUMENTER
(e.g. Word, Swagger)
TESTER
(e.g. POSTMan)
17//
Hier : différents outils pour documenter, tester ou bouchonner des webservices
BOUCHONNER
(e.g. WireMock)
DOCUMENTER
(e.g. Word, Swagger)
TESTER
(e.g. POSTMan)
18//
Hier : différents outils pour documenter, tester ou bouchonner des webservices
BOUCHONNER
(e.g. WireMock)
DOCUMENTER
(e.g. Word, Swagger)
TESTER
(e.g. POSTMan)
19//
Quel est notre but ?
20//
Avoir une seule
et unique source
de vérité !
Quel est notre but ?
21//
Trois options possibles
Trouver un outil du marché
(POSTMan, Restlet intègrent de plus en
plus de features !)
01
22//
Trois options possibles
Trouver un outil du marché
(POSTMan, Restlet intègrent de plus en
plus de features !)
Synchroniser différents outils
Forte dépendance aux autorisations
d’accès pour chaque outil
01
02
23//
Trois options possibles
Trouver un outil du marché
(POSTMan, Restlet intègrent de plus en
plus de features !)
Synchroniser différents outils
Forte dépendance aux autorisations
d’accès pour chaque outil
Construire
un nouvel outil
01
02
03
24//
Trois options possibles
Trouver un outil du marché
(POSTMan, Restlet intègrent de plus en
plus de features !)
Synchroniser différents outils
Forte dépendance aux autorisations
d’accès pour chaque outil
Construire
un nouvel outil
01
02
03
25//
02 //
Comment spécifier un unique JSON ?
26//
JSON
{
"user": {
"id": 1200,
"firstname": "Arthur",
"lastname": "Martin",
"age": 17
}
}
Exemple
27//
JSON Schema
{
"title": "user",
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"firstname": {
"type": "string"
},
"lastname": {
"type": "string"
},
"age": {
"type": "integer",
"minimum": 0
}
}
}
Représente la structure d’un JSON spécifique
28//
JSON Schema
À quoi sert un JSON Schema ?
DOCUMENTER
JSON Schema
TESTER
BOUCHONNER
29//
03 //
Comment spécifier toute une API avec
des JSON Schemas ?
30//
Ressources
Exemple : un utilisateur
User
31//
Attributs d’une ressource
Exemple : un utilisateur
{
"user": {
"id": 1200,
"firstname": "Arthur",
"lastname": "Martin",
"age": 17
}
}
Exemple de JSON
User
id
firstname
lastname
age
32//
LIRE les données d’un
utilisateur
GET /users/:id
Routes
Exemple : un utilisateur
CRÉER un nouvel
utilisateur
POST /users
METTRE À JOUR les
données d’un
utilisateur
PUT /users/:id
SUPPRIMER les
données d’un
utilisateur
DELETE /users/:id
33//
Documentation d’un webservice
Tout un projet !
PROJET
RESSOURCES
ATTRIBUTS ROUTES
34//
Documentation d’un webservice
Tout un projet !
PROJET
RESSOURCES
ATTRIBUTS ROUTES
REQUÊTES RÉPONSES
35//
Représentations de ressource
Exemple : CRÉER un nouvel utilisateur
User
firstname
lastname
36//
Représentations de ressource
Exemple : CRÉER un nouvel utilisateur
{
"title": "user",
"type": "object",
"properties": {
"firstname": {
"type": "string"
},
"lastname": {
"type": "string"
},
"required": ["firstname", "lastname"]
}
}
User
firstname
lastname
POST /users - Corps de la requête
37//
Représentations de ressource
Exemple - LIRE les données d’un utilisateur
{
"title": "user",
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"firstname": {
"type": "string"
},
"lastname": {
"type": "string"
},
"age": {
"type": "integer",
"minimum": 0
},
"required": [“id”,"firstname", "lastname"]
}
}
User
id
firstname
lastname
age
GET /users/:id - Corps de la réponse
38//
Documentation d’un webservice
L’ensemble des requêtes et des réponses
peuvent être décrites
par des représentations
de ressource.
REPRÉSENTATIONS DE RESSOURCES
PROJET
RESSOURCES
ATTRIBUTS ROUTES
REQUÊTES RÉPONSES
39//
Spécifications d’un webservice au global
TOUTES les routes du projet utilisent des représentations de ressource
40//
Spécifications d’un webservice au global
TOUTES les routes du projet utilisent des représentations de ressource
41//
Spécifications d’un webservice au global
TOUTES les routes du projet utilisent des représentations de ressource
{defaultUser}
{userCreation}
{userUpdate}
{defaultHouse}
{userHouseUpdate}
...
{defaultCar}
{userCarUpdate}
...
{defaultJob}
{userJobUpdate}
...
42//
Documentation d’un webservice
Tout un projet spécifié grâce aux
représentations de ses ressources !
Collection de JSON SCHEMA
REPRÉSENTATIONS DE RESSOURCES
PROJET
RESSOURCES
ATTRIBUTS ROUTES
REQUÊTES RÉPONSES
43//
04 //
Pourquoi le JSON Schema est si peu
utilisé ?
44//
Il peut s’avérer très complexe à écrire...
45//
La clef du succès est dans l’ombre !
ABSTRACTION DES JSON SCHEMA
INTERFACE UTILISATEUR SCHÉMA MANAGEMENT
46//
05 //
Problèmes résolus !
47//
Clients et Product/Project managers
Perte de temps infinie en tentant de reproduire le cas qui a causé le crash...
Mon application crash
encore et toujours...
Je regarde !
OK je suis partie pour des heures de tests pour tenter
de reproduire le cas qui a causé le crash...
48//
Des tests facilités grâce à au proxy intégré dans la solution
Client ServeurProxy
49//
Product/Project managers et Développeurs
Perte de temps infinie dans la mise à jour de la documentation et des bouchons des webservices...
Pourrais-tu mettre à jour les
spécifications webservices du coup stp ?
Bien sûr...
Je dois modifier tout un tas de fichiers, des bouchons
et de la documentation... Quel cauchemar !
50//
Une documentation à jour et téléchargeable
51//
BouchonClient
Des bouchons de webservices mis à jour quand la documentation est modifiée
52//
Clients, Products/Project managers et Développeurs
Il n’y a plus de souci - gain de temps effectif pour tout le monde !
Mes spécifications sont
toujours à jour
Je peux savoir rapidement
quand la documentation
est obsolète
Mettre des spécifications
et des bouchons à jour est
devenu beaucoup plus
simple !
53//
06 //
Conclusion
54//
55//
https://github.com/applidium/pericles
56//
https://github.com/applidium/pericles
Btw : on recrute !!!!
https://careers.fabernovel.com/
Merci.
57//
Julie ROLLIN-MOUSTÉOU
Senior Product Manager @FABERNOVELTECHNOLOGIES
julie.rollin@fabernovel.com
https://www.linkedin.com/in/julie-rollin-mousteou/
@JulieRolMous

Weitere ähnliche Inhalte

Was ist angesagt?

Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !
Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !
Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !Simplicité Software
 
Wygday Session PléNièRe (1)
Wygday Session PléNièRe (1)Wygday Session PléNièRe (1)
Wygday Session PléNièRe (1)Gregory Renard
 
Offre migrer vers_flutter
Offre migrer vers_flutterOffre migrer vers_flutter
Offre migrer vers_flutterJulien Saumande
 
UX Republic UX-Radar - juin 2018
UX Republic UX-Radar - juin 2018 UX Republic UX-Radar - juin 2018
UX Republic UX-Radar - juin 2018 romain landsberg
 
Le Rapid Prototyping, ça marche !
Le Rapid Prototyping, ça marche !Le Rapid Prototyping, ça marche !
Le Rapid Prototyping, ça marche !Catherine Verfaillie
 
Erellis- Agence en communication interactive
Erellis- Agence en communication interactiveErellis- Agence en communication interactive
Erellis- Agence en communication interactiveERELLIS
 
Panorama des solutions mobile hybrides
Panorama des solutions mobile hybridesPanorama des solutions mobile hybrides
Panorama des solutions mobile hybridesekino
 
SPS Dakar 2018 - Low code, lean et agilité - Sébastien Paulet
SPS Dakar 2018 - Low code, lean et agilité - Sébastien PauletSPS Dakar 2018 - Low code, lean et agilité - Sébastien Paulet
SPS Dakar 2018 - Low code, lean et agilité - Sébastien PauletaOS Community
 
Convivialité (UX) pour les affichages et services numériques dans le processu...
Convivialité (UX) pour les affichages et services numériques dans le processu...Convivialité (UX) pour les affichages et services numériques dans le processu...
Convivialité (UX) pour les affichages et services numériques dans le processu...Immacon
 
Atelier FLUPA UX-Days 2016 - "Test utilisateur d'accessibilité, par vous, pou...
Atelier FLUPA UX-Days 2016 - "Test utilisateur d'accessibilité, par vous, pou...Atelier FLUPA UX-Days 2016 - "Test utilisateur d'accessibilité, par vous, pou...
Atelier FLUPA UX-Days 2016 - "Test utilisateur d'accessibilité, par vous, pou...Flupa
 
Star d'UX bordeaux #1 - en UXmmersion
Star d'UX bordeaux #1 - en UXmmersion Star d'UX bordeaux #1 - en UXmmersion
Star d'UX bordeaux #1 - en UXmmersion UX Republic Bordeaux
 
[Webinar Niji] Clés de succès et partage d’expériences pour mettre en œuvre e...
[Webinar Niji] Clés de succès et partage d’expériences pour mettre en œuvre e...[Webinar Niji] Clés de succès et partage d’expériences pour mettre en œuvre e...
[Webinar Niji] Clés de succès et partage d’expériences pour mettre en œuvre e...Niji
 
Pourquoi l'Expérience Utilisateur va Révolutionner votre Entreprise - Rémi Ri...
Pourquoi l'Expérience Utilisateur va Révolutionner votre Entreprise - Rémi Ri...Pourquoi l'Expérience Utilisateur va Révolutionner votre Entreprise - Rémi Ri...
Pourquoi l'Expérience Utilisateur va Révolutionner votre Entreprise - Rémi Ri...Remi Rivas
 
Talk Red Hat Entreprise Numerique - Eip Designer - 20160323
Talk Red Hat Entreprise Numerique - Eip Designer - 20160323Talk Red Hat Entreprise Numerique - Eip Designer - 20160323
Talk Red Hat Entreprise Numerique - Eip Designer - 20160323Laurent Broudoux
 
Mutation des usages > Mutation des métiers - UXdays16 - FLUPA
Mutation des usages > Mutation des métiers - UXdays16 - FLUPAMutation des usages > Mutation des métiers - UXdays16 - FLUPA
Mutation des usages > Mutation des métiers - UXdays16 - FLUPAChristophe Cotin Valois
 
Guide de survie en milieu responsive - Paris Web 2013
Guide de survie en milieu responsive - Paris Web 2013Guide de survie en milieu responsive - Paris Web 2013
Guide de survie en milieu responsive - Paris Web 2013Guillaume Abel
 
[Webinar Niji] Performance web & mobile : Automatisez les tests pour ne pas r...
[Webinar Niji] Performance web & mobile : Automatisez les tests pour ne pas r...[Webinar Niji] Performance web & mobile : Automatisez les tests pour ne pas r...
[Webinar Niji] Performance web & mobile : Automatisez les tests pour ne pas r...Niji
 

Was ist angesagt? (20)

Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !
Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !
Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !
 
Le Lean UX avec K2
Le Lean UX avec K2Le Lean UX avec K2
Le Lean UX avec K2
 
Wygday Session PléNièRe (1)
Wygday Session PléNièRe (1)Wygday Session PléNièRe (1)
Wygday Session PléNièRe (1)
 
Offre migrer vers_flutter
Offre migrer vers_flutterOffre migrer vers_flutter
Offre migrer vers_flutter
 
UX Republic UX-Radar - juin 2018
UX Republic UX-Radar - juin 2018 UX Republic UX-Radar - juin 2018
UX Republic UX-Radar - juin 2018
 
Le Rapid Prototyping, ça marche !
Le Rapid Prototyping, ça marche !Le Rapid Prototyping, ça marche !
Le Rapid Prototyping, ça marche !
 
Erellis- Agence en communication interactive
Erellis- Agence en communication interactiveErellis- Agence en communication interactive
Erellis- Agence en communication interactive
 
Lean UX
Lean UX Lean UX
Lean UX
 
Panorama des solutions mobile hybrides
Panorama des solutions mobile hybridesPanorama des solutions mobile hybrides
Panorama des solutions mobile hybrides
 
SPS Dakar 2018 - Low code, lean et agilité - Sébastien Paulet
SPS Dakar 2018 - Low code, lean et agilité - Sébastien PauletSPS Dakar 2018 - Low code, lean et agilité - Sébastien Paulet
SPS Dakar 2018 - Low code, lean et agilité - Sébastien Paulet
 
Convivialité (UX) pour les affichages et services numériques dans le processu...
Convivialité (UX) pour les affichages et services numériques dans le processu...Convivialité (UX) pour les affichages et services numériques dans le processu...
Convivialité (UX) pour les affichages et services numériques dans le processu...
 
Atelier FLUPA UX-Days 2016 - "Test utilisateur d'accessibilité, par vous, pou...
Atelier FLUPA UX-Days 2016 - "Test utilisateur d'accessibilité, par vous, pou...Atelier FLUPA UX-Days 2016 - "Test utilisateur d'accessibilité, par vous, pou...
Atelier FLUPA UX-Days 2016 - "Test utilisateur d'accessibilité, par vous, pou...
 
Star d'UX bordeaux #1 - en UXmmersion
Star d'UX bordeaux #1 - en UXmmersion Star d'UX bordeaux #1 - en UXmmersion
Star d'UX bordeaux #1 - en UXmmersion
 
Sprint0
Sprint0Sprint0
Sprint0
 
[Webinar Niji] Clés de succès et partage d’expériences pour mettre en œuvre e...
[Webinar Niji] Clés de succès et partage d’expériences pour mettre en œuvre e...[Webinar Niji] Clés de succès et partage d’expériences pour mettre en œuvre e...
[Webinar Niji] Clés de succès et partage d’expériences pour mettre en œuvre e...
 
Pourquoi l'Expérience Utilisateur va Révolutionner votre Entreprise - Rémi Ri...
Pourquoi l'Expérience Utilisateur va Révolutionner votre Entreprise - Rémi Ri...Pourquoi l'Expérience Utilisateur va Révolutionner votre Entreprise - Rémi Ri...
Pourquoi l'Expérience Utilisateur va Révolutionner votre Entreprise - Rémi Ri...
 
Talk Red Hat Entreprise Numerique - Eip Designer - 20160323
Talk Red Hat Entreprise Numerique - Eip Designer - 20160323Talk Red Hat Entreprise Numerique - Eip Designer - 20160323
Talk Red Hat Entreprise Numerique - Eip Designer - 20160323
 
Mutation des usages > Mutation des métiers - UXdays16 - FLUPA
Mutation des usages > Mutation des métiers - UXdays16 - FLUPAMutation des usages > Mutation des métiers - UXdays16 - FLUPA
Mutation des usages > Mutation des métiers - UXdays16 - FLUPA
 
Guide de survie en milieu responsive - Paris Web 2013
Guide de survie en milieu responsive - Paris Web 2013Guide de survie en milieu responsive - Paris Web 2013
Guide de survie en milieu responsive - Paris Web 2013
 
[Webinar Niji] Performance web & mobile : Automatisez les tests pour ne pas r...
[Webinar Niji] Performance web & mobile : Automatisez les tests pour ne pas r...[Webinar Niji] Performance web & mobile : Automatisez les tests pour ne pas r...
[Webinar Niji] Performance web & mobile : Automatisez les tests pour ne pas r...
 

Ähnlich wie Spécifications de webservices avec un seul outil

Cv ines ouaz
Cv ines ouazCv ines ouaz
Cv ines ouazInes Ouaz
 
BreizhCamp - Drupal7 dans le cloud avec Azure
BreizhCamp - Drupal7 dans le cloud avec AzureBreizhCamp - Drupal7 dans le cloud avec Azure
BreizhCamp - Drupal7 dans le cloud avec AzureNicolas Georgeault
 
Java dans Windows Azure: l'exemple de Jonas
Java dans Windows Azure: l'exemple de JonasJava dans Windows Azure: l'exemple de Jonas
Java dans Windows Azure: l'exemple de JonasMicrosoft
 
Carnet de Route du Développeur - ENSIMAG 2012
Carnet de Route du Développeur - ENSIMAG 2012Carnet de Route du Développeur - ENSIMAG 2012
Carnet de Route du Développeur - ENSIMAG 2012Alexandre Morgaut
 
Production logicielle, outils et pratiques
Production logicielle, outils et pratiquesProduction logicielle, outils et pratiques
Production logicielle, outils et pratiquesJohan Moreau
 
Ma stack d'outils agiles, tout un programme !
Ma stack d'outils agiles, tout un programme !Ma stack d'outils agiles, tout un programme !
Ma stack d'outils agiles, tout un programme !Cédric Leblond
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8davrous
 
Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18
Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18
Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18Vincent Biret
 
2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...
2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...
2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...Modern Workplace Conference Paris
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !VISEO
 
Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013Xavier NOPRE
 
JUG Nantes - Telosys Tools - Avril 2014
JUG Nantes - Telosys Tools - Avril 2014 JUG Nantes - Telosys Tools - Avril 2014
JUG Nantes - Telosys Tools - Avril 2014 telosys
 
Telosys tools jug-nantes-2014-v1.2
Telosys tools jug-nantes-2014-v1.2Telosys tools jug-nantes-2014-v1.2
Telosys tools jug-nantes-2014-v1.2Laurent Guérin
 
Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)Tugdual Grall
 
La mobilité dans Drupal
La mobilité dans DrupalLa mobilité dans Drupal
La mobilité dans DrupalAdyax
 
Octo RefCard test front-end
Octo RefCard test front-endOcto RefCard test front-end
Octo RefCard test front-endClément Dubois
 

Ähnlich wie Spécifications de webservices avec un seul outil (20)

CV REBAI Hamida
CV REBAI HamidaCV REBAI Hamida
CV REBAI Hamida
 
Intégration Continue et PHP
Intégration Continue et PHPIntégration Continue et PHP
Intégration Continue et PHP
 
Cv ines ouaz
Cv ines ouazCv ines ouaz
Cv ines ouaz
 
BreizhCamp - Drupal7 dans le cloud avec Azure
BreizhCamp - Drupal7 dans le cloud avec AzureBreizhCamp - Drupal7 dans le cloud avec Azure
BreizhCamp - Drupal7 dans le cloud avec Azure
 
Java dans Windows Azure: l'exemple de Jonas
Java dans Windows Azure: l'exemple de JonasJava dans Windows Azure: l'exemple de Jonas
Java dans Windows Azure: l'exemple de Jonas
 
Carnet de Route du Développeur - ENSIMAG 2012
Carnet de Route du Développeur - ENSIMAG 2012Carnet de Route du Développeur - ENSIMAG 2012
Carnet de Route du Développeur - ENSIMAG 2012
 
Production logicielle, outils et pratiques
Production logicielle, outils et pratiquesProduction logicielle, outils et pratiques
Production logicielle, outils et pratiques
 
HTML5 en projet
HTML5 en projetHTML5 en projet
HTML5 en projet
 
Do you speak technique ?
Do you speak technique ?Do you speak technique ?
Do you speak technique ?
 
Ma stack d'outils agiles, tout un programme !
Ma stack d'outils agiles, tout un programme !Ma stack d'outils agiles, tout un programme !
Ma stack d'outils agiles, tout un programme !
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8
 
Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18
Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18
Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18
 
2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...
2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...
2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013
 
JUG Nantes - Telosys Tools - Avril 2014
JUG Nantes - Telosys Tools - Avril 2014 JUG Nantes - Telosys Tools - Avril 2014
JUG Nantes - Telosys Tools - Avril 2014
 
Telosys tools jug-nantes-2014-v1.2
Telosys tools jug-nantes-2014-v1.2Telosys tools jug-nantes-2014-v1.2
Telosys tools jug-nantes-2014-v1.2
 
Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)
 
La mobilité dans Drupal
La mobilité dans DrupalLa mobilité dans Drupal
La mobilité dans Drupal
 
Octo RefCard test front-end
Octo RefCard test front-endOcto RefCard test front-end
Octo RefCard test front-end
 

Mehr von Fabernovel

GAFAnomics Tesla Volume 2 - Is Tesla the disruptor we need?
GAFAnomics Tesla Volume 2 -  Is Tesla the disruptor we need?GAFAnomics Tesla Volume 2 -  Is Tesla the disruptor we need?
GAFAnomics Tesla Volume 2 - Is Tesla the disruptor we need?Fabernovel
 
Lancement de ReCOVery - Sortie de crise - Les nouveaux raisonnables
Lancement de ReCOVery - Sortie de crise - Les nouveaux raisonnablesLancement de ReCOVery - Sortie de crise - Les nouveaux raisonnables
Lancement de ReCOVery - Sortie de crise - Les nouveaux raisonnablesFabernovel
 
[Extract] Study - Talent KPIs
[Extract] Study - Talent KPIs [Extract] Study - Talent KPIs
[Extract] Study - Talent KPIs Fabernovel
 
Fabernovel analyse les tendances publicitaires du super bowl de 2020
Fabernovel analyse les tendances publicitaires du super bowl de 2020Fabernovel analyse les tendances publicitaires du super bowl de 2020
Fabernovel analyse les tendances publicitaires du super bowl de 2020Fabernovel
 
Amazon is eating the world
Amazon is eating the worldAmazon is eating the world
Amazon is eating the worldFabernovel
 
Gafanomics - Quarterly - Episode 4 (Q4FY19)
Gafanomics - Quarterly - Episode 4 (Q4FY19) Gafanomics - Quarterly - Episode 4 (Q4FY19)
Gafanomics - Quarterly - Episode 4 (Q4FY19) Fabernovel
 
Fabernovel study on SoftBank
Fabernovel study on SoftBankFabernovel study on SoftBank
Fabernovel study on SoftBankFabernovel
 
The new retail: apocalypse or new era?
The new retail: apocalypse or new era?The new retail: apocalypse or new era?
The new retail: apocalypse or new era?Fabernovel
 
L’aventure iOS - tvOS myCANAL
L’aventure iOS - tvOS myCANALL’aventure iOS - tvOS myCANAL
L’aventure iOS - tvOS myCANALFabernovel
 
WeChat Social Ads Playbook
WeChat Social Ads PlaybookWeChat Social Ads Playbook
WeChat Social Ads PlaybookFabernovel
 
[Extract] Study The We Company: is real estate a disruptable industry?
[Extract] Study The We Company: is real estate a disruptable industry?[Extract] Study The We Company: is real estate a disruptable industry?
[Extract] Study The We Company: is real estate a disruptable industry?Fabernovel
 
Insight Report by Fabernovel - The Hidden consumption force of Overseas Chine...
Insight Report by Fabernovel - The Hidden consumption force of Overseas Chine...Insight Report by Fabernovel - The Hidden consumption force of Overseas Chine...
Insight Report by Fabernovel - The Hidden consumption force of Overseas Chine...Fabernovel
 
Study Ardian & Fabernovel - The Augmented Infrastructure: Digital for climate?
Study Ardian & Fabernovel - The Augmented Infrastructure:  Digital for climate?Study Ardian & Fabernovel - The Augmented Infrastructure:  Digital for climate?
Study Ardian & Fabernovel - The Augmented Infrastructure: Digital for climate?Fabernovel
 
Services urbains : faut il vraiment penser utilisateur ?
Services urbains : faut il vraiment penser utilisateur ?Services urbains : faut il vraiment penser utilisateur ?
Services urbains : faut il vraiment penser utilisateur ?Fabernovel
 
[Fabernovel study] New economy, new KPI: the customer era
[Fabernovel study] New economy, new KPI:  the customer era[Fabernovel study] New economy, new KPI:  the customer era
[Fabernovel study] New economy, new KPI: the customer eraFabernovel
 
Gafanomics - The Quarterly - Episode 2 (Q2FY19)
Gafanomics - The Quarterly - Episode 2 (Q2FY19)Gafanomics - The Quarterly - Episode 2 (Q2FY19)
Gafanomics - The Quarterly - Episode 2 (Q2FY19)Fabernovel
 
The Future of Corporate Learning: from Training to Learning Experience
The Future of Corporate Learning: from Training to Learning ExperienceThe Future of Corporate Learning: from Training to Learning Experience
The Future of Corporate Learning: from Training to Learning ExperienceFabernovel
 
Gafanomics - The Quarterly - Episode 1 (Q1FY19)
Gafanomics - The Quarterly - Episode 1 (Q1FY19)Gafanomics - The Quarterly - Episode 1 (Q1FY19)
Gafanomics - The Quarterly - Episode 1 (Q1FY19)Fabernovel
 
Slack, the future workplace
Slack, the future workplaceSlack, the future workplace
Slack, the future workplaceFabernovel
 
Arbre à palabres #1 - Do things that don’t scale
Arbre à palabres #1 - Do things that don’t scaleArbre à palabres #1 - Do things that don’t scale
Arbre à palabres #1 - Do things that don’t scaleFabernovel
 

Mehr von Fabernovel (20)

GAFAnomics Tesla Volume 2 - Is Tesla the disruptor we need?
GAFAnomics Tesla Volume 2 -  Is Tesla the disruptor we need?GAFAnomics Tesla Volume 2 -  Is Tesla the disruptor we need?
GAFAnomics Tesla Volume 2 - Is Tesla the disruptor we need?
 
Lancement de ReCOVery - Sortie de crise - Les nouveaux raisonnables
Lancement de ReCOVery - Sortie de crise - Les nouveaux raisonnablesLancement de ReCOVery - Sortie de crise - Les nouveaux raisonnables
Lancement de ReCOVery - Sortie de crise - Les nouveaux raisonnables
 
[Extract] Study - Talent KPIs
[Extract] Study - Talent KPIs [Extract] Study - Talent KPIs
[Extract] Study - Talent KPIs
 
Fabernovel analyse les tendances publicitaires du super bowl de 2020
Fabernovel analyse les tendances publicitaires du super bowl de 2020Fabernovel analyse les tendances publicitaires du super bowl de 2020
Fabernovel analyse les tendances publicitaires du super bowl de 2020
 
Amazon is eating the world
Amazon is eating the worldAmazon is eating the world
Amazon is eating the world
 
Gafanomics - Quarterly - Episode 4 (Q4FY19)
Gafanomics - Quarterly - Episode 4 (Q4FY19) Gafanomics - Quarterly - Episode 4 (Q4FY19)
Gafanomics - Quarterly - Episode 4 (Q4FY19)
 
Fabernovel study on SoftBank
Fabernovel study on SoftBankFabernovel study on SoftBank
Fabernovel study on SoftBank
 
The new retail: apocalypse or new era?
The new retail: apocalypse or new era?The new retail: apocalypse or new era?
The new retail: apocalypse or new era?
 
L’aventure iOS - tvOS myCANAL
L’aventure iOS - tvOS myCANALL’aventure iOS - tvOS myCANAL
L’aventure iOS - tvOS myCANAL
 
WeChat Social Ads Playbook
WeChat Social Ads PlaybookWeChat Social Ads Playbook
WeChat Social Ads Playbook
 
[Extract] Study The We Company: is real estate a disruptable industry?
[Extract] Study The We Company: is real estate a disruptable industry?[Extract] Study The We Company: is real estate a disruptable industry?
[Extract] Study The We Company: is real estate a disruptable industry?
 
Insight Report by Fabernovel - The Hidden consumption force of Overseas Chine...
Insight Report by Fabernovel - The Hidden consumption force of Overseas Chine...Insight Report by Fabernovel - The Hidden consumption force of Overseas Chine...
Insight Report by Fabernovel - The Hidden consumption force of Overseas Chine...
 
Study Ardian & Fabernovel - The Augmented Infrastructure: Digital for climate?
Study Ardian & Fabernovel - The Augmented Infrastructure:  Digital for climate?Study Ardian & Fabernovel - The Augmented Infrastructure:  Digital for climate?
Study Ardian & Fabernovel - The Augmented Infrastructure: Digital for climate?
 
Services urbains : faut il vraiment penser utilisateur ?
Services urbains : faut il vraiment penser utilisateur ?Services urbains : faut il vraiment penser utilisateur ?
Services urbains : faut il vraiment penser utilisateur ?
 
[Fabernovel study] New economy, new KPI: the customer era
[Fabernovel study] New economy, new KPI:  the customer era[Fabernovel study] New economy, new KPI:  the customer era
[Fabernovel study] New economy, new KPI: the customer era
 
Gafanomics - The Quarterly - Episode 2 (Q2FY19)
Gafanomics - The Quarterly - Episode 2 (Q2FY19)Gafanomics - The Quarterly - Episode 2 (Q2FY19)
Gafanomics - The Quarterly - Episode 2 (Q2FY19)
 
The Future of Corporate Learning: from Training to Learning Experience
The Future of Corporate Learning: from Training to Learning ExperienceThe Future of Corporate Learning: from Training to Learning Experience
The Future of Corporate Learning: from Training to Learning Experience
 
Gafanomics - The Quarterly - Episode 1 (Q1FY19)
Gafanomics - The Quarterly - Episode 1 (Q1FY19)Gafanomics - The Quarterly - Episode 1 (Q1FY19)
Gafanomics - The Quarterly - Episode 1 (Q1FY19)
 
Slack, the future workplace
Slack, the future workplaceSlack, the future workplace
Slack, the future workplace
 
Arbre à palabres #1 - Do things that don’t scale
Arbre à palabres #1 - Do things that don’t scaleArbre à palabres #1 - Do things that don’t scale
Arbre à palabres #1 - Do things that don’t scale
 

Spécifications de webservices avec un seul outil

  • 1. DOCUMENTER, TESTER, ET BOUCHONNER VOS WEBSERVICES AVEC UN SEUL OUTIL C’est possible ! Nantes, jeudi 14 juin 2018
  • 2. 2// Julie ROLLIN-MOUSTÉOU Formation Expériences Développement JAVA chez Amadeus - Conseil en SI chez Deloitte - Business Development chez Tech4Team (édition de logiciels) - Product Management chez FABERNOVEL TECHNOLOGIES. Projets Senior Product Manager # Gestion de projet # Spécifications fonctionnelles # Webservices # Process - Formation
  • 3. 3// Qui a déjà rencontré un crash en front dû à une réponse de webservice non conforme à la spécification initiale ?
  • 4. 4// Qui a déjà entendu parlé des JSON Schema ?
  • 5. 5// 01 // Des problèmes récurrents ?
  • 6. 6// Design UX/UI IS legacy opening and integraton Front end web Big Data, Smart Data, Fast Data Back end web AI (chat bots, machine learning…) SaaS - PaaS / Cloud IOT Mobile Apps (development, product management) API management Front end web Architecture Devops
  • 7. 7// Clients, Product/Project Managers et Développeurs Quand un client rencontre un crash sur son application mobile... Mon application a crashé !!!
  • 8. 8// Clients, Product/Project Managers et Développeurs En tant qu’interlocuteur opérationnel privilégié du client, le Project Manager cherche la source du problème Nous investiguons la source du problème. Mon application a crashé !!!
  • 9. 9// Clients, Product/Project Managers et Développeurs Le Project Manager regarde les logs du crash et identifie que le crash se produit lors d’un appel au webservice D’où cela peut-il bien venir ? Regardons les logs... Cela semble lié à un appel côté webservice ! Mon application a crashé !!! Nous investiguons la source du problème.
  • 10. 10// Clients, Product/Project Managers et Développeurs Le Project Manager demande à son développeur la source exacte du problème et comment il peut régler ce crash ! Tu pourrais m’en dire plus ? Et tu pourrais corriger le souci stp ? J’ai remarqué que le crash se produisait lorsqu’on faisait cet appel… C’est assez critique pour ma cliente...
  • 11. 11// Clients, Product/Project Managers et Développeurs Le développeur donne son diagnostic... yes je vois tout à fait pourquoi l’application crash à cet endroit précis...
  • 12. 12// Clients, Product/Project Managers et Développeurs Le développeur donne son diagnostic : la spécification webservice initiale ne correspond pas à la réponse actuelle ! … c’est parce que la réponse actuelle que je reçois du webservice n’est pas la même que celle contenue dans les spécifications utilisées au moment du développement !
  • 13. 13// Clients, Product/Project Managers et Développeurs Chacun se demande quelle est la source de vérité… ??? À quelles spécifications faisons-nous référence ? À quelles spécifications faisons-nous référence ? À quelles spécifications faisons-nous référence ? C’est la version 1.5.0 envoyée début Avril non ? La dernière que j’ai reçue c’est la version 1.9.8 ! Moi j’avais la version 1.9.7...
  • 14. 14// Hier : différents outils pour documenter, tester ou bouchonner des webservices #2 TESTER #1 DOCUMENTER #3 BOUCHONNER
  • 15. 15// Hier : différents outils pour documenter, tester ou bouchonner des webservices DOCUMENTER (e.g. Word, Swagger)
  • 16. 16// Hier : différents outils pour documenter, tester ou bouchonner des webservices DOCUMENTER (e.g. Word, Swagger) TESTER (e.g. POSTMan)
  • 17. 17// Hier : différents outils pour documenter, tester ou bouchonner des webservices BOUCHONNER (e.g. WireMock) DOCUMENTER (e.g. Word, Swagger) TESTER (e.g. POSTMan)
  • 18. 18// Hier : différents outils pour documenter, tester ou bouchonner des webservices BOUCHONNER (e.g. WireMock) DOCUMENTER (e.g. Word, Swagger) TESTER (e.g. POSTMan)
  • 20. 20// Avoir une seule et unique source de vérité ! Quel est notre but ?
  • 21. 21// Trois options possibles Trouver un outil du marché (POSTMan, Restlet intègrent de plus en plus de features !) 01
  • 22. 22// Trois options possibles Trouver un outil du marché (POSTMan, Restlet intègrent de plus en plus de features !) Synchroniser différents outils Forte dépendance aux autorisations d’accès pour chaque outil 01 02
  • 23. 23// Trois options possibles Trouver un outil du marché (POSTMan, Restlet intègrent de plus en plus de features !) Synchroniser différents outils Forte dépendance aux autorisations d’accès pour chaque outil Construire un nouvel outil 01 02 03
  • 24. 24// Trois options possibles Trouver un outil du marché (POSTMan, Restlet intègrent de plus en plus de features !) Synchroniser différents outils Forte dépendance aux autorisations d’accès pour chaque outil Construire un nouvel outil 01 02 03
  • 25. 25// 02 // Comment spécifier un unique JSON ?
  • 26. 26// JSON { "user": { "id": 1200, "firstname": "Arthur", "lastname": "Martin", "age": 17 } } Exemple
  • 27. 27// JSON Schema { "title": "user", "type": "object", "properties": { "id": { "type": "integer" }, "firstname": { "type": "string" }, "lastname": { "type": "string" }, "age": { "type": "integer", "minimum": 0 } } } Représente la structure d’un JSON spécifique
  • 28. 28// JSON Schema À quoi sert un JSON Schema ? DOCUMENTER JSON Schema TESTER BOUCHONNER
  • 29. 29// 03 // Comment spécifier toute une API avec des JSON Schemas ?
  • 30. 30// Ressources Exemple : un utilisateur User
  • 31. 31// Attributs d’une ressource Exemple : un utilisateur { "user": { "id": 1200, "firstname": "Arthur", "lastname": "Martin", "age": 17 } } Exemple de JSON User id firstname lastname age
  • 32. 32// LIRE les données d’un utilisateur GET /users/:id Routes Exemple : un utilisateur CRÉER un nouvel utilisateur POST /users METTRE À JOUR les données d’un utilisateur PUT /users/:id SUPPRIMER les données d’un utilisateur DELETE /users/:id
  • 33. 33// Documentation d’un webservice Tout un projet ! PROJET RESSOURCES ATTRIBUTS ROUTES
  • 34. 34// Documentation d’un webservice Tout un projet ! PROJET RESSOURCES ATTRIBUTS ROUTES REQUÊTES RÉPONSES
  • 35. 35// Représentations de ressource Exemple : CRÉER un nouvel utilisateur User firstname lastname
  • 36. 36// Représentations de ressource Exemple : CRÉER un nouvel utilisateur { "title": "user", "type": "object", "properties": { "firstname": { "type": "string" }, "lastname": { "type": "string" }, "required": ["firstname", "lastname"] } } User firstname lastname POST /users - Corps de la requête
  • 37. 37// Représentations de ressource Exemple - LIRE les données d’un utilisateur { "title": "user", "type": "object", "properties": { "id": { "type": "integer" }, "firstname": { "type": "string" }, "lastname": { "type": "string" }, "age": { "type": "integer", "minimum": 0 }, "required": [“id”,"firstname", "lastname"] } } User id firstname lastname age GET /users/:id - Corps de la réponse
  • 38. 38// Documentation d’un webservice L’ensemble des requêtes et des réponses peuvent être décrites par des représentations de ressource. REPRÉSENTATIONS DE RESSOURCES PROJET RESSOURCES ATTRIBUTS ROUTES REQUÊTES RÉPONSES
  • 39. 39// Spécifications d’un webservice au global TOUTES les routes du projet utilisent des représentations de ressource
  • 40. 40// Spécifications d’un webservice au global TOUTES les routes du projet utilisent des représentations de ressource
  • 41. 41// Spécifications d’un webservice au global TOUTES les routes du projet utilisent des représentations de ressource {defaultUser} {userCreation} {userUpdate} {defaultHouse} {userHouseUpdate} ... {defaultCar} {userCarUpdate} ... {defaultJob} {userJobUpdate} ...
  • 42. 42// Documentation d’un webservice Tout un projet spécifié grâce aux représentations de ses ressources ! Collection de JSON SCHEMA REPRÉSENTATIONS DE RESSOURCES PROJET RESSOURCES ATTRIBUTS ROUTES REQUÊTES RÉPONSES
  • 43. 43// 04 // Pourquoi le JSON Schema est si peu utilisé ?
  • 44. 44// Il peut s’avérer très complexe à écrire...
  • 45. 45// La clef du succès est dans l’ombre ! ABSTRACTION DES JSON SCHEMA INTERFACE UTILISATEUR SCHÉMA MANAGEMENT
  • 47. 47// Clients et Product/Project managers Perte de temps infinie en tentant de reproduire le cas qui a causé le crash... Mon application crash encore et toujours... Je regarde ! OK je suis partie pour des heures de tests pour tenter de reproduire le cas qui a causé le crash...
  • 48. 48// Des tests facilités grâce à au proxy intégré dans la solution Client ServeurProxy
  • 49. 49// Product/Project managers et Développeurs Perte de temps infinie dans la mise à jour de la documentation et des bouchons des webservices... Pourrais-tu mettre à jour les spécifications webservices du coup stp ? Bien sûr... Je dois modifier tout un tas de fichiers, des bouchons et de la documentation... Quel cauchemar !
  • 50. 50// Une documentation à jour et téléchargeable
  • 51. 51// BouchonClient Des bouchons de webservices mis à jour quand la documentation est modifiée
  • 52. 52// Clients, Products/Project managers et Développeurs Il n’y a plus de souci - gain de temps effectif pour tout le monde ! Mes spécifications sont toujours à jour Je peux savoir rapidement quand la documentation est obsolète Mettre des spécifications et des bouchons à jour est devenu beaucoup plus simple !
  • 54. 54//
  • 56. 56// https://github.com/applidium/pericles Btw : on recrute !!!! https://careers.fabernovel.com/
  • 57. Merci. 57// Julie ROLLIN-MOUSTÉOU Senior Product Manager @FABERNOVELTECHNOLOGIES julie.rollin@fabernovel.com https://www.linkedin.com/in/julie-rollin-mousteou/ @JulieRolMous