SlideShare une entreprise Scribd logo
API Web Moderne avec
GRPC
Florian Bernard
Constat API Web
● Tous les projets utilisent une API web
● Utilisation de REST (Json + HTTP 1.1 )
● Centrer sur les ressources (CRUD)
● Pas de contrat de service “Standard”
● Développement et maintenance du code pour chaque plateforme
(Android, iOS, Web)
Historique API Web
● Corba (Common Object Request Broker Architecture)
● Java RMI (Remote Method Invocation)
● SOAP (Simple Object Access Protocol)
● REST (Representational State Transfer)
GRPC : https://grpc.io/
● Google Remote Procedure Call
● Version Open source de Stubby ( utiliser en interne)
● HTTP2 pour le transport (multiplexing et streaming bidirectionnel)
● Protocol Buffer : description des interfaces et format des données
● Supporte de nombreux langages (C++, Java, Python, Go, Ruby, C#,
Node, Swift, PHP, Dart ...)
HTTP 2
● Multiplexing (1 connexion plusieurs requêtes)
● Server Push
● Pipelining des requêtes
● Transport des données en binaires (frame)
● Compression des Headers
Multiplexing
Protocol Buffers
● Description du format indépendamment du langage de programmation
● Sérialisation / Désérialisation rapide
● Encodage binaire
Protocol Buffers
message Personne {
string prenom = 1;
string nom = 2 ;
}
Demo
GRPC Web
● HTTP2 pas totalement implémenté côté navigateur
● Protocol Spécifique basé sur HTTP et/ou Websocket
● Utilisation d’un “Proxy”
Alternatives
● Thrift : https://thrift.apache.org/
● Cap’n Proto : https://capnproto.org/
● RSocket : http://rsocket.io/
Merci
https://github.com/appstud/grpc-fullstack-demo

Contenu connexe

Similaire à API Web Moderne avec GRPC

Dotnet j2 ee
Dotnet j2 eeDotnet j2 ee
Dotnet j2 eechdalel
 
Les Web Services en 60 diapos chrono !
Les Web Services en 60 diapos chrono !Les Web Services en 60 diapos chrono !
Les Web Services en 60 diapos chrono !
Olivier Le Goaër
 
Retour AFUP du forumphp 2017
Retour AFUP du forumphp 2017Retour AFUP du forumphp 2017
Retour AFUP du forumphp 2017
AFUP_Limoges
 
Embedded webserver implementation and usage - DroidCon Paris 2014
Embedded webserver implementation and usage - DroidCon Paris 2014Embedded webserver implementation and usage - DroidCon Paris 2014
Embedded webserver implementation and usage - DroidCon Paris 2014
Paris Android User Group
 
S51 vos projets web services ibm i a l aide de php
S51   vos projets web services ibm i a l aide de phpS51   vos projets web services ibm i a l aide de php
S51 vos projets web services ibm i a l aide de php
Gautier DUMAS
 
gRPC, échange à haute fréquence!
gRPC, échange à haute fréquence!gRPC, échange à haute fréquence!
gRPC, échange à haute fréquence!
David Caramelo
 
gRPC, ECHANGES A HAUTE FREQUENCE !
gRPC, ECHANGES A HAUTE FREQUENCE !gRPC, ECHANGES A HAUTE FREQUENCE !
gRPC, ECHANGES A HAUTE FREQUENCE !
Carles Sistare
 
Meteor js 1.0
Meteor js 1.0Meteor js 1.0
Meteor js 1.0
Erwan Boulard
 
Ter Web Service Intro
Ter Web Service IntroTer Web Service Intro
Ter Web Service Intro
Riadh Tebourbi (Ai1990)
 
Resource Oriented Architecture
Resource Oriented ArchitectureResource Oriented Architecture
Resource Oriented Architecture
DNG Consulting
 
Real-Time applications avec la spécification Java (JSR 356) et le protocole W...
Real-Time applications avec la spécification Java (JSR 356) et le protocole W...Real-Time applications avec la spécification Java (JSR 356) et le protocole W...
Real-Time applications avec la spécification Java (JSR 356) et le protocole W...
Ouadie LAHDIOUI
 
Web APIs in Action (in French)
Web APIs in Action (in French)Web APIs in Action (in French)
Web APIs in Action (in French)
Restlet
 
cours6.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh...
cours6.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh...cours6.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh...
cours6.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh...
hindguendouz2000
 
soapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
soapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnsoapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
soapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
HINDGUENDOUZ
 
GWT Principes & Techniques
GWT Principes & TechniquesGWT Principes & Techniques
GWT Principes & Techniques
Rachid NID SAID
 
Java script Introduction
Java script IntroductionJava script Introduction
Java script Introduction
Mohamed MHAMDI
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependances
ENSET, Université Hassan II Casablanca
 
ENIB 2013-2014 - CAI Web #1: Côté navigateur 1/3
ENIB 2013-2014 - CAI Web #1: Côté navigateur 1/3ENIB 2013-2014 - CAI Web #1: Côté navigateur 1/3
ENIB 2013-2014 - CAI Web #1: Côté navigateur 1/3
Horacio Gonzalez
 

Similaire à API Web Moderne avec GRPC (18)

Dotnet j2 ee
Dotnet j2 eeDotnet j2 ee
Dotnet j2 ee
 
Les Web Services en 60 diapos chrono !
Les Web Services en 60 diapos chrono !Les Web Services en 60 diapos chrono !
Les Web Services en 60 diapos chrono !
 
Retour AFUP du forumphp 2017
Retour AFUP du forumphp 2017Retour AFUP du forumphp 2017
Retour AFUP du forumphp 2017
 
Embedded webserver implementation and usage - DroidCon Paris 2014
Embedded webserver implementation and usage - DroidCon Paris 2014Embedded webserver implementation and usage - DroidCon Paris 2014
Embedded webserver implementation and usage - DroidCon Paris 2014
 
S51 vos projets web services ibm i a l aide de php
S51   vos projets web services ibm i a l aide de phpS51   vos projets web services ibm i a l aide de php
S51 vos projets web services ibm i a l aide de php
 
gRPC, échange à haute fréquence!
gRPC, échange à haute fréquence!gRPC, échange à haute fréquence!
gRPC, échange à haute fréquence!
 
gRPC, ECHANGES A HAUTE FREQUENCE !
gRPC, ECHANGES A HAUTE FREQUENCE !gRPC, ECHANGES A HAUTE FREQUENCE !
gRPC, ECHANGES A HAUTE FREQUENCE !
 
Meteor js 1.0
Meteor js 1.0Meteor js 1.0
Meteor js 1.0
 
Ter Web Service Intro
Ter Web Service IntroTer Web Service Intro
Ter Web Service Intro
 
Resource Oriented Architecture
Resource Oriented ArchitectureResource Oriented Architecture
Resource Oriented Architecture
 
Real-Time applications avec la spécification Java (JSR 356) et le protocole W...
Real-Time applications avec la spécification Java (JSR 356) et le protocole W...Real-Time applications avec la spécification Java (JSR 356) et le protocole W...
Real-Time applications avec la spécification Java (JSR 356) et le protocole W...
 
Web APIs in Action (in French)
Web APIs in Action (in French)Web APIs in Action (in French)
Web APIs in Action (in French)
 
cours6.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh...
cours6.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh...cours6.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh...
cours6.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh...
 
soapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
soapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnsoapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
soapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
 
GWT Principes & Techniques
GWT Principes & TechniquesGWT Principes & Techniques
GWT Principes & Techniques
 
Java script Introduction
Java script IntroductionJava script Introduction
Java script Introduction
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependances
 
ENIB 2013-2014 - CAI Web #1: Côté navigateur 1/3
ENIB 2013-2014 - CAI Web #1: Côté navigateur 1/3ENIB 2013-2014 - CAI Web #1: Côté navigateur 1/3
ENIB 2013-2014 - CAI Web #1: Côté navigateur 1/3
 

Plus de Appstud

Appstalk techniques photos
Appstalk techniques photosAppstalk techniques photos
Appstalk techniques photos
Appstud
 
Internet Of Things
Internet Of ThingsInternet Of Things
Internet Of Things
Appstud
 
KaRma Sutra
KaRma SutraKaRma Sutra
KaRma Sutra
Appstud
 
Applications of Artificial Intelligence
Applications of Artificial IntelligenceApplications of Artificial Intelligence
Applications of Artificial Intelligence
Appstud
 
Quand les croyances impactent notre bonheur
Quand les croyances impactent notre bonheurQuand les croyances impactent notre bonheur
Quand les croyances impactent notre bonheur
Appstud
 
La collapsologie : l’effondrement de la civilisation thermo-industrielle
La collapsologie : l’effondrement de la civilisation thermo-industrielleLa collapsologie : l’effondrement de la civilisation thermo-industrielle
La collapsologie : l’effondrement de la civilisation thermo-industrielle
Appstud
 
Apple WorldWide Developers Conference 2019
Apple WorldWide Developers Conference 2019Apple WorldWide Developers Conference 2019
Apple WorldWide Developers Conference 2019
Appstud
 
L'utilisation du digital par l'agent de Police Municipale
L'utilisation du digital par l'agent de Police MunicipaleL'utilisation du digital par l'agent de Police Municipale
L'utilisation du digital par l'agent de Police Municipale
Appstud
 
Android makers
Android makersAndroid makers
Android makers
Appstud
 
Notre cerveau entre rêve et réalité
Notre cerveau entre rêve et réalité Notre cerveau entre rêve et réalité
Notre cerveau entre rêve et réalité
Appstud
 
Presentation gamification
Presentation gamificationPresentation gamification
Presentation gamification
Appstud
 
Infographie appstud.png
Infographie appstud.pngInfographie appstud.png
Infographie appstud.png
Appstud
 
Tests et KPI(s) - quoi, pourquoi, comment ?
Tests et KPI(s) - quoi, pourquoi, comment ?Tests et KPI(s) - quoi, pourquoi, comment ?
Tests et KPI(s) - quoi, pourquoi, comment ?
Appstud
 
Go programming language
Go programming languageGo programming language
Go programming language
Appstud
 
Idées VS échecs
Idées VS échecs Idées VS échecs
Idées VS échecs
Appstud
 
Blockchain
BlockchainBlockchain
Blockchain
Appstud
 
Présentation Flutter
Présentation FlutterPrésentation Flutter
Présentation Flutter
Appstud
 
La programmation neuro-linguistique
La programmation neuro-linguistiqueLa programmation neuro-linguistique
La programmation neuro-linguistique
Appstud
 
Le futur de l'acquisition sur mobile
Le futur de l'acquisition sur mobile Le futur de l'acquisition sur mobile
Le futur de l'acquisition sur mobile
Appstud
 
Intelligence Artificielle - La technique et l'éthique
Intelligence Artificielle - La technique et l'éthique Intelligence Artificielle - La technique et l'éthique
Intelligence Artificielle - La technique et l'éthique
Appstud
 

Plus de Appstud (20)

Appstalk techniques photos
Appstalk techniques photosAppstalk techniques photos
Appstalk techniques photos
 
Internet Of Things
Internet Of ThingsInternet Of Things
Internet Of Things
 
KaRma Sutra
KaRma SutraKaRma Sutra
KaRma Sutra
 
Applications of Artificial Intelligence
Applications of Artificial IntelligenceApplications of Artificial Intelligence
Applications of Artificial Intelligence
 
Quand les croyances impactent notre bonheur
Quand les croyances impactent notre bonheurQuand les croyances impactent notre bonheur
Quand les croyances impactent notre bonheur
 
La collapsologie : l’effondrement de la civilisation thermo-industrielle
La collapsologie : l’effondrement de la civilisation thermo-industrielleLa collapsologie : l’effondrement de la civilisation thermo-industrielle
La collapsologie : l’effondrement de la civilisation thermo-industrielle
 
Apple WorldWide Developers Conference 2019
Apple WorldWide Developers Conference 2019Apple WorldWide Developers Conference 2019
Apple WorldWide Developers Conference 2019
 
L'utilisation du digital par l'agent de Police Municipale
L'utilisation du digital par l'agent de Police MunicipaleL'utilisation du digital par l'agent de Police Municipale
L'utilisation du digital par l'agent de Police Municipale
 
Android makers
Android makersAndroid makers
Android makers
 
Notre cerveau entre rêve et réalité
Notre cerveau entre rêve et réalité Notre cerveau entre rêve et réalité
Notre cerveau entre rêve et réalité
 
Presentation gamification
Presentation gamificationPresentation gamification
Presentation gamification
 
Infographie appstud.png
Infographie appstud.pngInfographie appstud.png
Infographie appstud.png
 
Tests et KPI(s) - quoi, pourquoi, comment ?
Tests et KPI(s) - quoi, pourquoi, comment ?Tests et KPI(s) - quoi, pourquoi, comment ?
Tests et KPI(s) - quoi, pourquoi, comment ?
 
Go programming language
Go programming languageGo programming language
Go programming language
 
Idées VS échecs
Idées VS échecs Idées VS échecs
Idées VS échecs
 
Blockchain
BlockchainBlockchain
Blockchain
 
Présentation Flutter
Présentation FlutterPrésentation Flutter
Présentation Flutter
 
La programmation neuro-linguistique
La programmation neuro-linguistiqueLa programmation neuro-linguistique
La programmation neuro-linguistique
 
Le futur de l'acquisition sur mobile
Le futur de l'acquisition sur mobile Le futur de l'acquisition sur mobile
Le futur de l'acquisition sur mobile
 
Intelligence Artificielle - La technique et l'éthique
Intelligence Artificielle - La technique et l'éthique Intelligence Artificielle - La technique et l'éthique
Intelligence Artificielle - La technique et l'éthique
 

API Web Moderne avec GRPC

  • 1. API Web Moderne avec GRPC Florian Bernard
  • 2. Constat API Web ● Tous les projets utilisent une API web ● Utilisation de REST (Json + HTTP 1.1 ) ● Centrer sur les ressources (CRUD) ● Pas de contrat de service “Standard” ● Développement et maintenance du code pour chaque plateforme (Android, iOS, Web)
  • 3. Historique API Web ● Corba (Common Object Request Broker Architecture) ● Java RMI (Remote Method Invocation) ● SOAP (Simple Object Access Protocol) ● REST (Representational State Transfer)
  • 4. GRPC : https://grpc.io/ ● Google Remote Procedure Call ● Version Open source de Stubby ( utiliser en interne) ● HTTP2 pour le transport (multiplexing et streaming bidirectionnel) ● Protocol Buffer : description des interfaces et format des données ● Supporte de nombreux langages (C++, Java, Python, Go, Ruby, C#, Node, Swift, PHP, Dart ...)
  • 5. HTTP 2 ● Multiplexing (1 connexion plusieurs requêtes) ● Server Push ● Pipelining des requêtes ● Transport des données en binaires (frame) ● Compression des Headers
  • 7. Protocol Buffers ● Description du format indépendamment du langage de programmation ● Sérialisation / Désérialisation rapide ● Encodage binaire
  • 8. Protocol Buffers message Personne { string prenom = 1; string nom = 2 ; }
  • 10. GRPC Web ● HTTP2 pas totalement implémenté côté navigateur ● Protocol Spécifique basé sur HTTP et/ou Websocket ● Utilisation d’un “Proxy”
  • 11. Alternatives ● Thrift : https://thrift.apache.org/ ● Cap’n Proto : https://capnproto.org/ ● RSocket : http://rsocket.io/