Zoom on API protocols
by snonov
Par le menu
- introduction and overview
- SOAP
- REST
- gRPC
- GraphQL
- and some more (Json-RPC, XML-RPC, Apache Thrift)
Introduction
API (Application Programming Interface) enable commuication between services. Request/Reponse model using protocol to exchange data.
Exchange based on transport (and protocol) would be view as :
- Request/Response format
- Request structure
- Response Structure
- Transport layer
- Endpoint
Web service - W3C definition : software system designed to support interoperable machine-to-machine interaction over a network.
- designed for machine-to-machine (or application-to-application) interaction
- interoperable (not plateform dependent)
- allow communication over a network
Review of various API protocols
RedHat Architecture guide to APIs
Roy T Fielding : Architectural Styles and the Design of Network-based Software Architectures
Perspective in Microservice world : SOA vs Microservice
SOAP (Simple Object Access Protocol)
- Format : SOAP XML Request and Response (with envelope, optional Header and Body)
- Transport
- SOAP over MQ
- SOAP over HTTP
- Service definition : WSDL
REST (Representational State Transfert)
REST is the set of constraints. RESTful refers to an API adhering to those constraints
Wikipedia REST page
Richardson Maturity Model
gRPC
An open source high performance Remote Procedure Call (RPC)
gRPC is using protocol buffer
GraphQL
GraphQL, intially from Facebook (2012) is now under GraphQL foundation (under Linux foundation)
Some more
Apache Thrift software framework, for scalable cross-language services development
tags: API - Protocol - Rest - Soap - Graphql - Grpc - Thrift - Zoomon