SlideShare ist ein Scribd-Unternehmen logo
1 von 27
aOS Genève
22 juin 2017
API Gateway Pattern + Office 365 API = Microsoft
Graph
@felix_billon
aOS Genève
22 juin 2017
Félix Billon
Développeur Web Organisateur Membre
@felix_billon
felixbillon
http://shakedatcode.fr
aOS Genève
22 juin 2017
Microservices ?
Approche Monolithic Approche Microservices
Commandes ProduitsClients Commandes ProduitsClients
aOS Genève
22 juin 2017
Problème
Approche Monolithic Approche Microservices
Client
Commandes ProduitsClients Commandes ProduitsClients
Client
aOS Genève
22 juin 2017
API Gateway Pattern
Félix Billon
@felix_billon
aOS Genève
22 juin 2017
API Gateway pattern
Commandes ProduitsClients
Client
Gateway
aOS Genève
22 juin 2017
Implémentation : NetFlix Falcor
aOS Genève
22 juin 2017
Implémentation : Facebook GraphQL
Service 2 Service 3Service 1
Client
GraphQL Server
aOS Genève
22 juin 2017
Implémentation : Microsoft Graph
aOS Genève
22 juin 2017
Microsoft Graph
Félix Billon
@felix_billon
aOS Genève
22 juin 2017
En bref
• API Gateway pour communiquer avec l’ensemble des produits
d’Office 365 mais pas que !
aOS Genève
22 juin 2017
Vision macro
aOS Genève
22 juin 2017
Authentification : via un utilisateur
délégation des permissions
1. Enregistrement de l’application.
2. Appeler le serveur d’autorisation
3. Obtenir un access token
4. Appeler Micrososft Graph avec
l’acess token
5. Rafraichir le token expiré avec le
refresh token
aOS Genève
22 juin 2017
Authentification : sans utilisateur
permission propre à l’application
1. Enregistrement de l’application.
2. Configurer les permissions de
l’application (dans le portail)
3. Obtenir l’approbation d’un
administrateur
4. Obtenir un access token
5. Appeler Micrososft Graph avec
l’acess token
aOS Genève
22 juin 2017
Authentification
• Librairie :
• Azure AD (ADAL)
• Azure AD 2.0 (MSAL)
• MS Graph connect sample :
• Angular2
• Node.JS
• Android
• PHP
• …
aOS Genève
22 juin 2017
Utilisations MS Graph API
• API rest classique : http + verb.
Verbe Description
GET Lire les données d’une ressource
POST Créer une ressource ou effectuer une action
PATCH Mettre à jour une ressources avec de nouvelles
valeurs
PUT Remplacer une ressource
DELETE Supprimer une ressource
aOS Genève
22 juin 2017
Utilisations MS Graph API
• Structure d’une requête :
• Exemple :
• https://graph.microsoft.com/v1.0/me/messages
• https://graph.microsoft.com/beta/me/insights/trending
• https://graph.microsoft.com/v1.0/me/messages?$filter=importance eq 'high‘
aOS Genève
22 juin 2017
Parcourir le graph
• https://graph.microsoft.com/{version}/$metadata
aOS Genève
22 juin 2017
Personnaliser la réponse
Nom Description
$filter Filtre les résultats (lignes)
$select Filtre les propriétés (colonnes)
$expand Permet d’obtenir des ressources connexes.
$orderBy Ordonne les résultats
$top Limite les résultats.
$count Donne le nombre de ressources correspondant à la
requête.
$skip Permet de sauter des résultats
$search Recherche parmi les résultats
aOS Genève
22 juin 2017
Batch request
• Permet de faire plusieurs requête en une seul
aOS Genève
22 juin 2017
Tracker les changements
• Utiliser le query-parameter : $delta
• Permet de parcourir l’ensemble des mutations de la ressource.
• Retourne un nœud nommé @odata.nextLink = prochaine page de
changement
• Retourne un nœud nommé @odata.deltaLink = plus de changement
aOS Genève
22 juin 2017
Etendre les données
• Deux façon :
• Open extensions :
• Simple d’utilisation
• Permet d’ajouter des données non typée
• Directement liée à une ressource
• Récupération via $expand
• Schema extentions :
• Plus complexe
• Ensemble de données typées.
• Permet d’étendre le schéma du graph
• Récupération via $select, possibilité de filtré dessus, …
aOS Genève
22 juin 2017
Exemples et SDKs
aOS Genève
22 juin 2017
SDKs
aOS Genève
22 juin 2017
Conclusion
Félix Billon
aOS Genève
22 juin 2017
Conclusion
• Grande avancée qui s’inscrit dans la logique de fédération des
services sous Office 365.
• Pas encore toutes les APIs/fonctionnalités et beaucoup en preview.
• Avance à très grands pas !
• Le tournant à ne pas manquer pour les dev Office 365.
aOS Genève
22 juin 2017
Merci à nos sponsors !

Weitere ähnliche Inhalte

Was ist angesagt?

Pré-Conférences - SharePoint Saturday Paris 2016 - Le développement Office...
Pré-Conférences - SharePoint Saturday Paris 2016 - Le développement Office...Pré-Conférences - SharePoint Saturday Paris 2016 - Le développement Office...
Pré-Conférences - SharePoint Saturday Paris 2016 - Le développement Office...Sébastien Levert
 
Bonnes pratiques pour votre espace de travail numérique Office 365 - Patrick ...
Bonnes pratiques pour votre espace de travail numérique Office 365 - Patrick ...Bonnes pratiques pour votre espace de travail numérique Office 365 - Patrick ...
Bonnes pratiques pour votre espace de travail numérique Office 365 - Patrick ...aOS Community
 
2017 06-20 Construire un superbe espace de travail numérique avec Office 365
2017 06-20 Construire un superbe espace de travail numérique avec Office 3652017 06-20 Construire un superbe espace de travail numérique avec Office 365
2017 06-20 Construire un superbe espace de travail numérique avec Office 365Patrick Guimonet
 
11 Comment utiliser le Lean Startup et le Design Thinking pour accélérer vo...
11   Comment utiliser le Lean Startup et le Design Thinking pour accélérer vo...11   Comment utiliser le Lean Startup et le Design Thinking pour accélérer vo...
11 Comment utiliser le Lean Startup et le Design Thinking pour accélérer vo...aOS Community
 
3 Session Nintex - Workflow as a service
3   Session Nintex - Workflow as a service3   Session Nintex - Workflow as a service
3 Session Nintex - Workflow as a serviceaOS Community
 
2016 12-02 aOS Lille - Que la force du cloud soit avec vos applications
2016 12-02 aOS Lille - Que la force du cloud soit avec vos applications2016 12-02 aOS Lille - Que la force du cloud soit avec vos applications
2016 12-02 aOS Lille - Que la force du cloud soit avec vos applicationsPatrick Guimonet
 
4 Exploitez pleinement la puissance des containers grâce à Azure
4   Exploitez pleinement la puissance des containers grâce à Azure4   Exploitez pleinement la puissance des containers grâce à Azure
4 Exploitez pleinement la puissance des containers grâce à AzureaOS Community
 
Comment optimiser sa productivité avec office 365.
Comment optimiser sa productivité avec office 365.Comment optimiser sa productivité avec office 365.
Comment optimiser sa productivité avec office 365.Cyrès
 
MSDEVMTL - Le Microsoft Graph et le développement Office 365
MSDEVMTL - Le Microsoft Graph et le développement Office 365MSDEVMTL - Le Microsoft Graph et le développement Office 365
MSDEVMTL - Le Microsoft Graph et le développement Office 365Sébastien Levert
 
SPS paris2016 Nintex Session
SPS paris2016 Nintex Session SPS paris2016 Nintex Session
SPS paris2016 Nintex Session Alexandre Joly
 
Introduction à AngularJS dans un contexte Office365
Introduction à AngularJS dans un contexte Office365Introduction à AngularJS dans un contexte Office365
Introduction à AngularJS dans un contexte Office365Sébastien Levert
 
6 Session Aerow - New experience and SharePoint framework
6   Session Aerow - New experience and SharePoint framework6   Session Aerow - New experience and SharePoint framework
6 Session Aerow - New experience and SharePoint frameworkaOS Community
 
[JSS2015] Power BI: Nouveautés archi et hybrides
[JSS2015] Power BI: Nouveautés archi et hybrides[JSS2015] Power BI: Nouveautés archi et hybrides
[JSS2015] Power BI: Nouveautés archi et hybridesGUSS
 
ASP.NET Web API & Azure API Management
ASP.NET Web API & Azure API ManagementASP.NET Web API & Azure API Management
ASP.NET Web API & Azure API ManagementMicrosoft
 
2017 05-05-a os-luxembourg-digitalworkspaceagile
2017 05-05-a os-luxembourg-digitalworkspaceagile2017 05-05-a os-luxembourg-digitalworkspaceagile
2017 05-05-a os-luxembourg-digitalworkspaceagileFrank POIREAU
 
Team lab présentation
Team lab présentationTeam lab présentation
Team lab présentationdihiaselma
 
[JSS2015] Power BI Dev
[JSS2015] Power BI Dev[JSS2015] Power BI Dev
[JSS2015] Power BI DevGUSS
 
Mise en place de sa fe essential au SIDP
Mise en place de sa fe essential au SIDPMise en place de sa fe essential au SIDP
Mise en place de sa fe essential au SIDPAlexandre Cuva
 
Guspqc oct 2018 #msignite news dev
Guspqc oct 2018  #msignite news devGuspqc oct 2018  #msignite news dev
Guspqc oct 2018 #msignite news devVincent Biret
 
SharePoint : votre portail métier d'entreprise #mstechdays 2012
SharePoint : votre portail métier d'entreprise #mstechdays 2012SharePoint : votre portail métier d'entreprise #mstechdays 2012
SharePoint : votre portail métier d'entreprise #mstechdays 2012Vincent Biret
 

Was ist angesagt? (20)

Pré-Conférences - SharePoint Saturday Paris 2016 - Le développement Office...
Pré-Conférences - SharePoint Saturday Paris 2016 - Le développement Office...Pré-Conférences - SharePoint Saturday Paris 2016 - Le développement Office...
Pré-Conférences - SharePoint Saturday Paris 2016 - Le développement Office...
 
Bonnes pratiques pour votre espace de travail numérique Office 365 - Patrick ...
Bonnes pratiques pour votre espace de travail numérique Office 365 - Patrick ...Bonnes pratiques pour votre espace de travail numérique Office 365 - Patrick ...
Bonnes pratiques pour votre espace de travail numérique Office 365 - Patrick ...
 
2017 06-20 Construire un superbe espace de travail numérique avec Office 365
2017 06-20 Construire un superbe espace de travail numérique avec Office 3652017 06-20 Construire un superbe espace de travail numérique avec Office 365
2017 06-20 Construire un superbe espace de travail numérique avec Office 365
 
11 Comment utiliser le Lean Startup et le Design Thinking pour accélérer vo...
11   Comment utiliser le Lean Startup et le Design Thinking pour accélérer vo...11   Comment utiliser le Lean Startup et le Design Thinking pour accélérer vo...
11 Comment utiliser le Lean Startup et le Design Thinking pour accélérer vo...
 
3 Session Nintex - Workflow as a service
3   Session Nintex - Workflow as a service3   Session Nintex - Workflow as a service
3 Session Nintex - Workflow as a service
 
2016 12-02 aOS Lille - Que la force du cloud soit avec vos applications
2016 12-02 aOS Lille - Que la force du cloud soit avec vos applications2016 12-02 aOS Lille - Que la force du cloud soit avec vos applications
2016 12-02 aOS Lille - Que la force du cloud soit avec vos applications
 
4 Exploitez pleinement la puissance des containers grâce à Azure
4   Exploitez pleinement la puissance des containers grâce à Azure4   Exploitez pleinement la puissance des containers grâce à Azure
4 Exploitez pleinement la puissance des containers grâce à Azure
 
Comment optimiser sa productivité avec office 365.
Comment optimiser sa productivité avec office 365.Comment optimiser sa productivité avec office 365.
Comment optimiser sa productivité avec office 365.
 
MSDEVMTL - Le Microsoft Graph et le développement Office 365
MSDEVMTL - Le Microsoft Graph et le développement Office 365MSDEVMTL - Le Microsoft Graph et le développement Office 365
MSDEVMTL - Le Microsoft Graph et le développement Office 365
 
SPS paris2016 Nintex Session
SPS paris2016 Nintex Session SPS paris2016 Nintex Session
SPS paris2016 Nintex Session
 
Introduction à AngularJS dans un contexte Office365
Introduction à AngularJS dans un contexte Office365Introduction à AngularJS dans un contexte Office365
Introduction à AngularJS dans un contexte Office365
 
6 Session Aerow - New experience and SharePoint framework
6   Session Aerow - New experience and SharePoint framework6   Session Aerow - New experience and SharePoint framework
6 Session Aerow - New experience and SharePoint framework
 
[JSS2015] Power BI: Nouveautés archi et hybrides
[JSS2015] Power BI: Nouveautés archi et hybrides[JSS2015] Power BI: Nouveautés archi et hybrides
[JSS2015] Power BI: Nouveautés archi et hybrides
 
ASP.NET Web API & Azure API Management
ASP.NET Web API & Azure API ManagementASP.NET Web API & Azure API Management
ASP.NET Web API & Azure API Management
 
2017 05-05-a os-luxembourg-digitalworkspaceagile
2017 05-05-a os-luxembourg-digitalworkspaceagile2017 05-05-a os-luxembourg-digitalworkspaceagile
2017 05-05-a os-luxembourg-digitalworkspaceagile
 
Team lab présentation
Team lab présentationTeam lab présentation
Team lab présentation
 
[JSS2015] Power BI Dev
[JSS2015] Power BI Dev[JSS2015] Power BI Dev
[JSS2015] Power BI Dev
 
Mise en place de sa fe essential au SIDP
Mise en place de sa fe essential au SIDPMise en place de sa fe essential au SIDP
Mise en place de sa fe essential au SIDP
 
Guspqc oct 2018 #msignite news dev
Guspqc oct 2018  #msignite news devGuspqc oct 2018  #msignite news dev
Guspqc oct 2018 #msignite news dev
 
SharePoint : votre portail métier d'entreprise #mstechdays 2012
SharePoint : votre portail métier d'entreprise #mstechdays 2012SharePoint : votre portail métier d'entreprise #mstechdays 2012
SharePoint : votre portail métier d'entreprise #mstechdays 2012
 

Ähnlich wie 10 API Gateway Pattern + Office 365 API = Microsoft Graph

Les Architectures Skype for Business
Les Architectures Skype for BusinessLes Architectures Skype for Business
Les Architectures Skype for BusinessEudes Olivier ROBERT
 
21-06-2018 aOS Aix 3 Nouveautés Azure - Fabien Dibot et Yoann Guillo
21-06-2018 aOS Aix 3 Nouveautés Azure - Fabien Dibot et Yoann Guillo21-06-2018 aOS Aix 3 Nouveautés Azure - Fabien Dibot et Yoann Guillo
21-06-2018 aOS Aix 3 Nouveautés Azure - Fabien Dibot et Yoann GuilloaOS Community
 
#SPSParis quoi de neuf avec le microsoft graph
#SPSParis quoi de neuf avec le microsoft graph#SPSParis quoi de neuf avec le microsoft graph
#SPSParis quoi de neuf avec le microsoft graphVincent Biret
 
U1 - Quoi de neuf avec le Microsoft Graph - Vincent Biret
U1 - Quoi de neuf avec le Microsoft Graph - Vincent BiretU1 - Quoi de neuf avec le Microsoft Graph - Vincent Biret
U1 - Quoi de neuf avec le Microsoft Graph - Vincent BiretSPS Paris
 
"Visio"-nnez vos données et facilitez vos prises de decision
"Visio"-nnez vos données et facilitez vos prises de decision"Visio"-nnez vos données et facilitez vos prises de decision
"Visio"-nnez vos données et facilitez vos prises de decisionNicolas Georgeault
 
Un site dynamique sans serveur (serverless), c’est possible ! par Virginie MA...
Un site dynamique sans serveur (serverless), c’est possible ! par Virginie MA...Un site dynamique sans serveur (serverless), c’est possible ! par Virginie MA...
Un site dynamique sans serveur (serverless), c’est possible ! par Virginie MA...La Cuisine du Web
 
8 Moderniser votre datacenter avec hyperconvergence Windows Server 2016
8   Moderniser votre datacenter avec hyperconvergence Windows Server 20168   Moderniser votre datacenter avec hyperconvergence Windows Server 2016
8 Moderniser votre datacenter avec hyperconvergence Windows Server 2016aOS Community
 
Le Developpement Web Aspnet2 Vb2005
Le Developpement Web Aspnet2   Vb2005Le Developpement Web Aspnet2   Vb2005
Le Developpement Web Aspnet2 Vb2005Gregory Renard
 
Des mises à jour? Emmenez votre application Stitch encore plus loin grâce aux...
Des mises à jour? Emmenez votre application Stitch encore plus loin grâce aux...Des mises à jour? Emmenez votre application Stitch encore plus loin grâce aux...
Des mises à jour? Emmenez votre application Stitch encore plus loin grâce aux...MongoDB
 
Comment connecter les données d'ingénierie? Open Services for Lifecycle Colla...
Comment connecter les données d'ingénierie? Open Services for Lifecycle Colla...Comment connecter les données d'ingénierie? Open Services for Lifecycle Colla...
Comment connecter les données d'ingénierie? Open Services for Lifecycle Colla...Axel Reichwein
 
TechDays 2011 - Préparation à la migration Lotus Notes vers SharePoint
TechDays 2011 - Préparation à la migration Lotus Notes vers SharePointTechDays 2011 - Préparation à la migration Lotus Notes vers SharePoint
TechDays 2011 - Préparation à la migration Lotus Notes vers SharePointBenoit HAMET
 
Le Microsoft Graph et le développement Office 365
Le Microsoft Graph et le développement Office 365Le Microsoft Graph et le développement Office 365
Le Microsoft Graph et le développement Office 365MSDEVMTL
 
Gestion des données d'entreprise à l'ère de MongoDB et du Data Lake
Gestion des données d'entreprise à l'ère de MongoDB et du Data LakeGestion des données d'entreprise à l'ère de MongoDB et du Data Lake
Gestion des données d'entreprise à l'ère de MongoDB et du Data LakeMongoDB
 
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
 
GitHub et Microsoft Azure DevOps - Le mariage parfait
GitHub et Microsoft Azure DevOps - Le mariage parfaitGitHub et Microsoft Azure DevOps - Le mariage parfait
GitHub et Microsoft Azure DevOps - Le mariage parfaitDenis Voituron
 
S14 visionnez vos données et facilitez vos prises de decision
S14   visionnez vos données et facilitez vos prises de decisionS14   visionnez vos données et facilitez vos prises de decision
S14 visionnez vos données et facilitez vos prises de decisionNicolas Georgeault
 
Ms Cloud Summit 2017 - Power Bi, le tour complet 2017
Ms Cloud Summit 2017 - Power Bi, le tour complet 2017Ms Cloud Summit 2017 - Power Bi, le tour complet 2017
Ms Cloud Summit 2017 - Power Bi, le tour complet 2017Isabelle Van Campenhoudt
 
7 - Azure et Gouvernance tout ce que vous devez savoir - aOS Chambord
7 - Azure et Gouvernance tout ce que vous devez savoir - aOS Chambord7 - Azure et Gouvernance tout ce que vous devez savoir - aOS Chambord
7 - Azure et Gouvernance tout ce que vous devez savoir - aOS ChambordaOS Community
 
Panorama de l'écosystème Microsoft Data Platform
Panorama de l'écosystème Microsoft Data PlatformPanorama de l'écosystème Microsoft Data Platform
Panorama de l'écosystème Microsoft Data PlatformPhilippe Geiger
 

Ähnlich wie 10 API Gateway Pattern + Office 365 API = Microsoft Graph (20)

Les Architectures Skype for Business
Les Architectures Skype for BusinessLes Architectures Skype for Business
Les Architectures Skype for Business
 
21-06-2018 aOS Aix 3 Nouveautés Azure - Fabien Dibot et Yoann Guillo
21-06-2018 aOS Aix 3 Nouveautés Azure - Fabien Dibot et Yoann Guillo21-06-2018 aOS Aix 3 Nouveautés Azure - Fabien Dibot et Yoann Guillo
21-06-2018 aOS Aix 3 Nouveautés Azure - Fabien Dibot et Yoann Guillo
 
#SPSParis quoi de neuf avec le microsoft graph
#SPSParis quoi de neuf avec le microsoft graph#SPSParis quoi de neuf avec le microsoft graph
#SPSParis quoi de neuf avec le microsoft graph
 
U1 - Quoi de neuf avec le Microsoft Graph - Vincent Biret
U1 - Quoi de neuf avec le Microsoft Graph - Vincent BiretU1 - Quoi de neuf avec le Microsoft Graph - Vincent Biret
U1 - Quoi de neuf avec le Microsoft Graph - Vincent Biret
 
"Visio"-nnez vos données et facilitez vos prises de decision
"Visio"-nnez vos données et facilitez vos prises de decision"Visio"-nnez vos données et facilitez vos prises de decision
"Visio"-nnez vos données et facilitez vos prises de decision
 
Un site dynamique sans serveur (serverless), c’est possible ! par Virginie MA...
Un site dynamique sans serveur (serverless), c’est possible ! par Virginie MA...Un site dynamique sans serveur (serverless), c’est possible ! par Virginie MA...
Un site dynamique sans serveur (serverless), c’est possible ! par Virginie MA...
 
8 Moderniser votre datacenter avec hyperconvergence Windows Server 2016
8   Moderniser votre datacenter avec hyperconvergence Windows Server 20168   Moderniser votre datacenter avec hyperconvergence Windows Server 2016
8 Moderniser votre datacenter avec hyperconvergence Windows Server 2016
 
Le Developpement Web Aspnet2 Vb2005
Le Developpement Web Aspnet2   Vb2005Le Developpement Web Aspnet2   Vb2005
Le Developpement Web Aspnet2 Vb2005
 
Des mises à jour? Emmenez votre application Stitch encore plus loin grâce aux...
Des mises à jour? Emmenez votre application Stitch encore plus loin grâce aux...Des mises à jour? Emmenez votre application Stitch encore plus loin grâce aux...
Des mises à jour? Emmenez votre application Stitch encore plus loin grâce aux...
 
Comment connecter les données d'ingénierie? Open Services for Lifecycle Colla...
Comment connecter les données d'ingénierie? Open Services for Lifecycle Colla...Comment connecter les données d'ingénierie? Open Services for Lifecycle Colla...
Comment connecter les données d'ingénierie? Open Services for Lifecycle Colla...
 
TechDays 2011 - Préparation à la migration Lotus Notes vers SharePoint
TechDays 2011 - Préparation à la migration Lotus Notes vers SharePointTechDays 2011 - Préparation à la migration Lotus Notes vers SharePoint
TechDays 2011 - Préparation à la migration Lotus Notes vers SharePoint
 
Le Microsoft Graph et le développement Office 365
Le Microsoft Graph et le développement Office 365Le Microsoft Graph et le développement Office 365
Le Microsoft Graph et le développement Office 365
 
Gestion des données d'entreprise à l'ère de MongoDB et du Data Lake
Gestion des données d'entreprise à l'ère de MongoDB et du Data LakeGestion des données d'entreprise à l'ère de MongoDB et du Data Lake
Gestion des données d'entreprise à l'ère de MongoDB et du Data Lake
 
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
 
GitHub et Microsoft Azure DevOps - Le mariage parfait
GitHub et Microsoft Azure DevOps - Le mariage parfaitGitHub et Microsoft Azure DevOps - Le mariage parfait
GitHub et Microsoft Azure DevOps - Le mariage parfait
 
S14 visionnez vos données et facilitez vos prises de decision
S14   visionnez vos données et facilitez vos prises de decisionS14   visionnez vos données et facilitez vos prises de decision
S14 visionnez vos données et facilitez vos prises de decision
 
Ms Cloud Summit 2017 - Power Bi, le tour complet 2017
Ms Cloud Summit 2017 - Power Bi, le tour complet 2017Ms Cloud Summit 2017 - Power Bi, le tour complet 2017
Ms Cloud Summit 2017 - Power Bi, le tour complet 2017
 
Power Bi, le tour complet 2017
Power Bi, le tour complet 2017 Power Bi, le tour complet 2017
Power Bi, le tour complet 2017
 
7 - Azure et Gouvernance tout ce que vous devez savoir - aOS Chambord
7 - Azure et Gouvernance tout ce que vous devez savoir - aOS Chambord7 - Azure et Gouvernance tout ce que vous devez savoir - aOS Chambord
7 - Azure et Gouvernance tout ce que vous devez savoir - aOS Chambord
 
Panorama de l'écosystème Microsoft Data Platform
Panorama de l'écosystème Microsoft Data PlatformPanorama de l'écosystème Microsoft Data Platform
Panorama de l'écosystème Microsoft Data Platform
 

Mehr von aOS Community

Commencer le IaaS sur Azure - aOS Tahiti 03-03-2020
Commencer le IaaS sur Azure - aOS Tahiti 03-03-2020Commencer le IaaS sur Azure - aOS Tahiti 03-03-2020
Commencer le IaaS sur Azure - aOS Tahiti 03-03-2020aOS Community
 
Migrer vers O365. Quelles stragtégies? - aOS Tahiti 03-03-2020
Migrer vers O365. Quelles stragtégies? - aOS Tahiti 03-03-2020Migrer vers O365. Quelles stragtégies? - aOS Tahiti 03-03-2020
Migrer vers O365. Quelles stragtégies? - aOS Tahiti 03-03-2020aOS Community
 
Passer des macro Excel à la power plateform - aOS Tahiti 03-03-2020
Passer des macro Excel à la power plateform - aOS Tahiti 03-03-2020Passer des macro Excel à la power plateform - aOS Tahiti 03-03-2020
Passer des macro Excel à la power plateform - aOS Tahiti 03-03-2020aOS Community
 
Serverless avec azure functions - aOS Tahiti 03-03-2020
Serverless avec azure functions - aOS Tahiti 03-03-2020Serverless avec azure functions - aOS Tahiti 03-03-2020
Serverless avec azure functions - aOS Tahiti 03-03-2020aOS Community
 
Passer des macro Excel à la power plateform - aOS Nouméa 28-02-2020
Passer des macro Excel à la power plateform - aOS Nouméa 28-02-2020 Passer des macro Excel à la power plateform - aOS Nouméa 28-02-2020
Passer des macro Excel à la power plateform - aOS Nouméa 28-02-2020 aOS Community
 
MS ignite : les nouveautés autour des content services et projet cortex - aOS...
MS ignite : les nouveautés autour des content services et projet cortex - aOS...MS ignite : les nouveautés autour des content services et projet cortex - aOS...
MS ignite : les nouveautés autour des content services et projet cortex - aOS...aOS Community
 
Cybersecurité dans M365 - aOS Noumea 28-02-2020
Cybersecurité dans M365 - aOS Noumea 28-02-2020Cybersecurité dans M365 - aOS Noumea 28-02-2020
Cybersecurité dans M365 - aOS Noumea 28-02-2020aOS Community
 
Introduction a Power Automate - aOS Nouméa 28-02-2020
Introduction a Power Automate  - aOS Nouméa 28-02-2020 Introduction a Power Automate  - aOS Nouméa 28-02-2020
Introduction a Power Automate - aOS Nouméa 28-02-2020 aOS Community
 
aOS Monaco 2019 - S3 - Présentation Varonis - Cloud Data Protection - Benjami...
aOS Monaco 2019 - S3 - Présentation Varonis - Cloud Data Protection - Benjami...aOS Monaco 2019 - S3 - Présentation Varonis - Cloud Data Protection - Benjami...
aOS Monaco 2019 - S3 - Présentation Varonis - Cloud Data Protection - Benjami...aOS Community
 
aOS Monaco 2019 - S2 - Présentation ARKADIN - TEAMS Adoption - Laurent Pilo
aOS Monaco 2019 - S2 - Présentation ARKADIN - TEAMS Adoption - Laurent PiloaOS Monaco 2019 - S2 - Présentation ARKADIN - TEAMS Adoption - Laurent Pilo
aOS Monaco 2019 - S2 - Présentation ARKADIN - TEAMS Adoption - Laurent PiloaOS Community
 
aOS Monaco 2019 - C1 - Sécuriser sa messagerie sur Office 365 - Hakim Taoussi...
aOS Monaco 2019 - C1 - Sécuriser sa messagerie sur Office 365 - Hakim Taoussi...aOS Monaco 2019 - C1 - Sécuriser sa messagerie sur Office 365 - Hakim Taoussi...
aOS Monaco 2019 - C1 - Sécuriser sa messagerie sur Office 365 - Hakim Taoussi...aOS Community
 
aOS Monaco 2019 - B7 - I Developed a SPFx solution, what to do next and how t...
aOS Monaco 2019 - B7 - I Developed a SPFx solution, what to do next and how t...aOS Monaco 2019 - B7 - I Developed a SPFx solution, what to do next and how t...
aOS Monaco 2019 - B7 - I Developed a SPFx solution, what to do next and how t...aOS Community
 
aOS Monaco 2019 - B6 - Mister Governance and Doctor Teams - Jean-François Ber...
aOS Monaco 2019 - B6 - Mister Governance and Doctor Teams - Jean-François Ber...aOS Monaco 2019 - B6 - Mister Governance and Doctor Teams - Jean-François Ber...
aOS Monaco 2019 - B6 - Mister Governance and Doctor Teams - Jean-François Ber...aOS Community
 
aOS Monaco 2019 - B5 - The good, the bad and the unexpected - a BOT story - K...
aOS Monaco 2019 - B5 - The good, the bad and the unexpected - a BOT story - K...aOS Monaco 2019 - B5 - The good, the bad and the unexpected - a BOT story - K...
aOS Monaco 2019 - B5 - The good, the bad and the unexpected - a BOT story - K...aOS Community
 
aOS Monaco 2019 - B4 - Three must have workflows with Microsoft Flow - Vlad C...
aOS Monaco 2019 - B4 - Three must have workflows with Microsoft Flow - Vlad C...aOS Monaco 2019 - B4 - Three must have workflows with Microsoft Flow - Vlad C...
aOS Monaco 2019 - B4 - Three must have workflows with Microsoft Flow - Vlad C...aOS Community
 
aOS Monaco 2019 - B3 - Create purchase request in PowerApps - Robi Voncina
aOS Monaco 2019 - B3 - Create purchase request in PowerApps - Robi VoncinaaOS Monaco 2019 - B3 - Create purchase request in PowerApps - Robi Voncina
aOS Monaco 2019 - B3 - Create purchase request in PowerApps - Robi VoncinaaOS Community
 
aOS Monaco 2019 - B2 - Intégrer la Power Platform avec SharePoint - Patrick G...
aOS Monaco 2019 - B2 - Intégrer la Power Platform avec SharePoint - Patrick G...aOS Monaco 2019 - B2 - Intégrer la Power Platform avec SharePoint - Patrick G...
aOS Monaco 2019 - B2 - Intégrer la Power Platform avec SharePoint - Patrick G...aOS Community
 
aOS Monaco 2019 - B1 - Construire son infrastructure sur Azure un jeu d'enfan...
aOS Monaco 2019 - B1 - Construire son infrastructure sur Azure un jeu d'enfan...aOS Monaco 2019 - B1 - Construire son infrastructure sur Azure un jeu d'enfan...
aOS Monaco 2019 - B1 - Construire son infrastructure sur Azure un jeu d'enfan...aOS Community
 
aOS Monaco 2019 - A7 - Sécurisez votre SI et vos services Office 365 partie 2...
aOS Monaco 2019 - A7 - Sécurisez votre SI et vos services Office 365 partie 2...aOS Monaco 2019 - A7 - Sécurisez votre SI et vos services Office 365 partie 2...
aOS Monaco 2019 - A7 - Sécurisez votre SI et vos services Office 365 partie 2...aOS Community
 
aOS Monaco 2019 - A6 - Sécurisez votre SI et vos services Office 365 partie 1...
aOS Monaco 2019 - A6 - Sécurisez votre SI et vos services Office 365 partie 1...aOS Monaco 2019 - A6 - Sécurisez votre SI et vos services Office 365 partie 1...
aOS Monaco 2019 - A6 - Sécurisez votre SI et vos services Office 365 partie 1...aOS Community
 

Mehr von aOS Community (20)

Commencer le IaaS sur Azure - aOS Tahiti 03-03-2020
Commencer le IaaS sur Azure - aOS Tahiti 03-03-2020Commencer le IaaS sur Azure - aOS Tahiti 03-03-2020
Commencer le IaaS sur Azure - aOS Tahiti 03-03-2020
 
Migrer vers O365. Quelles stragtégies? - aOS Tahiti 03-03-2020
Migrer vers O365. Quelles stragtégies? - aOS Tahiti 03-03-2020Migrer vers O365. Quelles stragtégies? - aOS Tahiti 03-03-2020
Migrer vers O365. Quelles stragtégies? - aOS Tahiti 03-03-2020
 
Passer des macro Excel à la power plateform - aOS Tahiti 03-03-2020
Passer des macro Excel à la power plateform - aOS Tahiti 03-03-2020Passer des macro Excel à la power plateform - aOS Tahiti 03-03-2020
Passer des macro Excel à la power plateform - aOS Tahiti 03-03-2020
 
Serverless avec azure functions - aOS Tahiti 03-03-2020
Serverless avec azure functions - aOS Tahiti 03-03-2020Serverless avec azure functions - aOS Tahiti 03-03-2020
Serverless avec azure functions - aOS Tahiti 03-03-2020
 
Passer des macro Excel à la power plateform - aOS Nouméa 28-02-2020
Passer des macro Excel à la power plateform - aOS Nouméa 28-02-2020 Passer des macro Excel à la power plateform - aOS Nouméa 28-02-2020
Passer des macro Excel à la power plateform - aOS Nouméa 28-02-2020
 
MS ignite : les nouveautés autour des content services et projet cortex - aOS...
MS ignite : les nouveautés autour des content services et projet cortex - aOS...MS ignite : les nouveautés autour des content services et projet cortex - aOS...
MS ignite : les nouveautés autour des content services et projet cortex - aOS...
 
Cybersecurité dans M365 - aOS Noumea 28-02-2020
Cybersecurité dans M365 - aOS Noumea 28-02-2020Cybersecurité dans M365 - aOS Noumea 28-02-2020
Cybersecurité dans M365 - aOS Noumea 28-02-2020
 
Introduction a Power Automate - aOS Nouméa 28-02-2020
Introduction a Power Automate  - aOS Nouméa 28-02-2020 Introduction a Power Automate  - aOS Nouméa 28-02-2020
Introduction a Power Automate - aOS Nouméa 28-02-2020
 
aOS Monaco 2019 - S3 - Présentation Varonis - Cloud Data Protection - Benjami...
aOS Monaco 2019 - S3 - Présentation Varonis - Cloud Data Protection - Benjami...aOS Monaco 2019 - S3 - Présentation Varonis - Cloud Data Protection - Benjami...
aOS Monaco 2019 - S3 - Présentation Varonis - Cloud Data Protection - Benjami...
 
aOS Monaco 2019 - S2 - Présentation ARKADIN - TEAMS Adoption - Laurent Pilo
aOS Monaco 2019 - S2 - Présentation ARKADIN - TEAMS Adoption - Laurent PiloaOS Monaco 2019 - S2 - Présentation ARKADIN - TEAMS Adoption - Laurent Pilo
aOS Monaco 2019 - S2 - Présentation ARKADIN - TEAMS Adoption - Laurent Pilo
 
aOS Monaco 2019 - C1 - Sécuriser sa messagerie sur Office 365 - Hakim Taoussi...
aOS Monaco 2019 - C1 - Sécuriser sa messagerie sur Office 365 - Hakim Taoussi...aOS Monaco 2019 - C1 - Sécuriser sa messagerie sur Office 365 - Hakim Taoussi...
aOS Monaco 2019 - C1 - Sécuriser sa messagerie sur Office 365 - Hakim Taoussi...
 
aOS Monaco 2019 - B7 - I Developed a SPFx solution, what to do next and how t...
aOS Monaco 2019 - B7 - I Developed a SPFx solution, what to do next and how t...aOS Monaco 2019 - B7 - I Developed a SPFx solution, what to do next and how t...
aOS Monaco 2019 - B7 - I Developed a SPFx solution, what to do next and how t...
 
aOS Monaco 2019 - B6 - Mister Governance and Doctor Teams - Jean-François Ber...
aOS Monaco 2019 - B6 - Mister Governance and Doctor Teams - Jean-François Ber...aOS Monaco 2019 - B6 - Mister Governance and Doctor Teams - Jean-François Ber...
aOS Monaco 2019 - B6 - Mister Governance and Doctor Teams - Jean-François Ber...
 
aOS Monaco 2019 - B5 - The good, the bad and the unexpected - a BOT story - K...
aOS Monaco 2019 - B5 - The good, the bad and the unexpected - a BOT story - K...aOS Monaco 2019 - B5 - The good, the bad and the unexpected - a BOT story - K...
aOS Monaco 2019 - B5 - The good, the bad and the unexpected - a BOT story - K...
 
aOS Monaco 2019 - B4 - Three must have workflows with Microsoft Flow - Vlad C...
aOS Monaco 2019 - B4 - Three must have workflows with Microsoft Flow - Vlad C...aOS Monaco 2019 - B4 - Three must have workflows with Microsoft Flow - Vlad C...
aOS Monaco 2019 - B4 - Three must have workflows with Microsoft Flow - Vlad C...
 
aOS Monaco 2019 - B3 - Create purchase request in PowerApps - Robi Voncina
aOS Monaco 2019 - B3 - Create purchase request in PowerApps - Robi VoncinaaOS Monaco 2019 - B3 - Create purchase request in PowerApps - Robi Voncina
aOS Monaco 2019 - B3 - Create purchase request in PowerApps - Robi Voncina
 
aOS Monaco 2019 - B2 - Intégrer la Power Platform avec SharePoint - Patrick G...
aOS Monaco 2019 - B2 - Intégrer la Power Platform avec SharePoint - Patrick G...aOS Monaco 2019 - B2 - Intégrer la Power Platform avec SharePoint - Patrick G...
aOS Monaco 2019 - B2 - Intégrer la Power Platform avec SharePoint - Patrick G...
 
aOS Monaco 2019 - B1 - Construire son infrastructure sur Azure un jeu d'enfan...
aOS Monaco 2019 - B1 - Construire son infrastructure sur Azure un jeu d'enfan...aOS Monaco 2019 - B1 - Construire son infrastructure sur Azure un jeu d'enfan...
aOS Monaco 2019 - B1 - Construire son infrastructure sur Azure un jeu d'enfan...
 
aOS Monaco 2019 - A7 - Sécurisez votre SI et vos services Office 365 partie 2...
aOS Monaco 2019 - A7 - Sécurisez votre SI et vos services Office 365 partie 2...aOS Monaco 2019 - A7 - Sécurisez votre SI et vos services Office 365 partie 2...
aOS Monaco 2019 - A7 - Sécurisez votre SI et vos services Office 365 partie 2...
 
aOS Monaco 2019 - A6 - Sécurisez votre SI et vos services Office 365 partie 1...
aOS Monaco 2019 - A6 - Sécurisez votre SI et vos services Office 365 partie 1...aOS Monaco 2019 - A6 - Sécurisez votre SI et vos services Office 365 partie 1...
aOS Monaco 2019 - A6 - Sécurisez votre SI et vos services Office 365 partie 1...
 

10 API Gateway Pattern + Office 365 API = Microsoft Graph

  • 1. aOS Genève 22 juin 2017 API Gateway Pattern + Office 365 API = Microsoft Graph @felix_billon
  • 2. aOS Genève 22 juin 2017 Félix Billon Développeur Web Organisateur Membre @felix_billon felixbillon http://shakedatcode.fr
  • 3. aOS Genève 22 juin 2017 Microservices ? Approche Monolithic Approche Microservices Commandes ProduitsClients Commandes ProduitsClients
  • 4. aOS Genève 22 juin 2017 Problème Approche Monolithic Approche Microservices Client Commandes ProduitsClients Commandes ProduitsClients Client
  • 5. aOS Genève 22 juin 2017 API Gateway Pattern Félix Billon @felix_billon
  • 6. aOS Genève 22 juin 2017 API Gateway pattern Commandes ProduitsClients Client Gateway
  • 7. aOS Genève 22 juin 2017 Implémentation : NetFlix Falcor
  • 8. aOS Genève 22 juin 2017 Implémentation : Facebook GraphQL Service 2 Service 3Service 1 Client GraphQL Server
  • 9. aOS Genève 22 juin 2017 Implémentation : Microsoft Graph
  • 10. aOS Genève 22 juin 2017 Microsoft Graph Félix Billon @felix_billon
  • 11. aOS Genève 22 juin 2017 En bref • API Gateway pour communiquer avec l’ensemble des produits d’Office 365 mais pas que !
  • 12. aOS Genève 22 juin 2017 Vision macro
  • 13. aOS Genève 22 juin 2017 Authentification : via un utilisateur délégation des permissions 1. Enregistrement de l’application. 2. Appeler le serveur d’autorisation 3. Obtenir un access token 4. Appeler Micrososft Graph avec l’acess token 5. Rafraichir le token expiré avec le refresh token
  • 14. aOS Genève 22 juin 2017 Authentification : sans utilisateur permission propre à l’application 1. Enregistrement de l’application. 2. Configurer les permissions de l’application (dans le portail) 3. Obtenir l’approbation d’un administrateur 4. Obtenir un access token 5. Appeler Micrososft Graph avec l’acess token
  • 15. aOS Genève 22 juin 2017 Authentification • Librairie : • Azure AD (ADAL) • Azure AD 2.0 (MSAL) • MS Graph connect sample : • Angular2 • Node.JS • Android • PHP • …
  • 16. aOS Genève 22 juin 2017 Utilisations MS Graph API • API rest classique : http + verb. Verbe Description GET Lire les données d’une ressource POST Créer une ressource ou effectuer une action PATCH Mettre à jour une ressources avec de nouvelles valeurs PUT Remplacer une ressource DELETE Supprimer une ressource
  • 17. aOS Genève 22 juin 2017 Utilisations MS Graph API • Structure d’une requête : • Exemple : • https://graph.microsoft.com/v1.0/me/messages • https://graph.microsoft.com/beta/me/insights/trending • https://graph.microsoft.com/v1.0/me/messages?$filter=importance eq 'high‘
  • 18. aOS Genève 22 juin 2017 Parcourir le graph • https://graph.microsoft.com/{version}/$metadata
  • 19. aOS Genève 22 juin 2017 Personnaliser la réponse Nom Description $filter Filtre les résultats (lignes) $select Filtre les propriétés (colonnes) $expand Permet d’obtenir des ressources connexes. $orderBy Ordonne les résultats $top Limite les résultats. $count Donne le nombre de ressources correspondant à la requête. $skip Permet de sauter des résultats $search Recherche parmi les résultats
  • 20. aOS Genève 22 juin 2017 Batch request • Permet de faire plusieurs requête en une seul
  • 21. aOS Genève 22 juin 2017 Tracker les changements • Utiliser le query-parameter : $delta • Permet de parcourir l’ensemble des mutations de la ressource. • Retourne un nœud nommé @odata.nextLink = prochaine page de changement • Retourne un nœud nommé @odata.deltaLink = plus de changement
  • 22. aOS Genève 22 juin 2017 Etendre les données • Deux façon : • Open extensions : • Simple d’utilisation • Permet d’ajouter des données non typée • Directement liée à une ressource • Récupération via $expand • Schema extentions : • Plus complexe • Ensemble de données typées. • Permet d’étendre le schéma du graph • Récupération via $select, possibilité de filtré dessus, …
  • 23. aOS Genève 22 juin 2017 Exemples et SDKs
  • 24. aOS Genève 22 juin 2017 SDKs
  • 25. aOS Genève 22 juin 2017 Conclusion Félix Billon
  • 26. aOS Genève 22 juin 2017 Conclusion • Grande avancée qui s’inscrit dans la logique de fédération des services sous Office 365. • Pas encore toutes les APIs/fonctionnalités et beaucoup en preview. • Avance à très grands pas ! • Le tournant à ne pas manquer pour les dev Office 365.
  • 27. aOS Genève 22 juin 2017 Merci à nos sponsors !

Hinweis der Redaktion

  1. application monolitich : découpée en différente couche fonctionnelle (présentation layer, BLL, DLL, …) Image tirée de la doc de service frabric
  2. Problème micro services : déploiement : azure service fabric, container, … communication : event driven, … service discovery … Multiple endpoint
  3. Joue le rôle de routeur de requêtes/ orchestrateur Avantages : moins d’aller retour client/services, simplification code client, une seul authentification (spécifique), loggins, contrôle du traffic, … Inconvénient : ajout d’un nouveau composant (déploiement, …), higly avaible, doit connaitre tous les endpoints des microservices.
  4. Developer preview Open source depuis 2015 Le client va chercher ses données dans un gros model json (model falcor)
  5. 2015 également Spécification, implémentation : .Net, Javascript, Python, Ruby, Scala PHP, … Modélise les données sous forme de graph au sein du graphQl server puis dire comment les résoudre. On utilise un client pour parler au graph
  6. graph API facebook API gateway = one endpoint Donnée organiser sous forme de graph Lié à projet rome : transmettre des scénario entre device ! Insight (mode delve objet tendance, personne avec qui je travail, personne en rapport avec un sujet, …) rapport, …. Interroger et muter ce graph. Tracker les changement du graph
  7. OpenID single sign on + Oauth 2.0 gestions des autorisations. Un seul endpoint pour accéder à l’ensemble des données.
  8. Il faut un access token contenant les scope nécessaire pour effectuer une requête à MS Graph Enregistrement de l’application sur : MS App Registration Portal. Via utilisateur : serveur d’autohirsation demande d’approbation de l’utilisateur (donner les droits à l’application) Approbation administrateur via API ou portail. DEMO
  9. Get : obetnir les info d’un utilisateur, d’un group, obtenir les mails, worksheet, … Post : envoyer un mail, créer un répertoire sous onedrive, ajouter un contact, …
  10. Version : 1.0 production App, Beta inclue les APIs en preview Ressource : me, users, group, drives and sites. Ressource avec laquelle on souhaite interagir. Point d’entré dans le graph. Query-paramter : customiser la réponse. DEMO
  11. Obtenir la description du graph pour pouvoir comprendre la façon dont il est modélisé. Suis les normes Odata protocol (ISO/IEC approved) standardisé par Oasis. Voir dans la doc la liste des api : user, groups, excel, azure active directory, onedrive, onenote, … @odata.context situe le contexte au sein du graph DEMO
  12. $filter = where (egal, superieur, inferieur, and, or, contains, startwith, any, all, … https://graph.microsoft.com/v1.0/users?$filter=GivenName eq 'Félix‘ $select = select (nom de champs) https://graph.microsoft.com/v1.0/me/events?$select=subject,body,bodyPreview,organizer,attendees,start,end,location $expand = pour accéder à une ressource relative ou à une collection (de base non retourné pour limiter la bande passante et alléger le temps de réponse du service. (un utilisateur et son manager, un utilisateur et ses collaborateurs,…) https://graph.microsoft.com/v1.0/me/drive/root?$expand=children($select=id,name) $orderBy = orderBy $top = $skipToken (page suivante) $count = retourne le nombre dans une propriété https://graph.microsoft.com/v1.0/me/contacts?$count=true $skip = sauté les premier résultat $search = (seulement message et personne) limité à 250 résultat. (tous les message avec le mot…) https://graph.microsoft.com/beta/me/people/?$search=j https://graph.microsoft.com/v1.0/me/messages?$search="from:felix.billon@wanadoo.fr«  Sur le endpoint beta, $ est optionel ! DEMO
  13. En beta pour l’instant
  14. Spécifité du $select permet de ne tracker que les champs demandé $expand inutilisable. Les liens contiennent des tokens DEMO https://graph.microsoft.com/v1.0/users/delta?$select=displayName,givenName,surname
  15. Open extensions = Office 365 data extentions Schema extentions peut être CRUD de façon indépendante.
  16. Connect samplle : exemple de connection Snippet sample : exemple d’interrogation du graph (envoi d’email, accès aux excel, …) SDKs : aide pour interroger le graph