ABN Techweek – What are the API architectural styles?
THE DIAGRAM BELOW SHOWS THE COMMON API ARCHITECTURAL STYLES IN ONE PICTURE.
🔹 1. REST
PROPOSED IN 2000, REST IS THE MOST USED STYLE. IT IS OFTEN USED BETWEEN FRONT-END CLIENTS AND BACK-END SERVICES. IT IS COMPLIANT WITH 6 ARCHITECTURAL CONSTRAINTS. THE PAYLOAD FORMAT CAN BE JSON, XML, HTML, OR PLAIN TEXT.
🔹 2. GRAPHQL
GRAPHQL WAS PROPOSED IN 2015 BY META. IT PROVIDES A SCHEMA AND TYPE SYSTEM, SUITABLE FOR COMPLEX SYSTEMS WHERE THE RELATIONSHIPS BETWEEN ENTITIES ARE GRAPH-LIKE. FOR EXAMPLE, IN THE DIAGRAM BELOW, GRAPHQL CAN RETRIEVE USER AND ORDER INFORMATION IN ONE CALL, WHILE IN REST THIS NEEDS MULTIPLE CALLS.
GRAPHQL IS NOT A REPLACEMENT FOR REST. IT CAN BE BUILT UPON EXISTING REST SERVICES.
🔹 3. WEB SOCKET
WEB SOCKET IS A PROTOCOL THAT PROVIDES FULL-DUPLEX COMMUNICATIONS OVER TCP. THE CLIENTS ESTABLISH WEB SOCKETS TO RECEIVE REAL-TIME UPDATES FROM THE BACK-END SERVICES. UNLIKE REST, WHICH ALWAYS “PULLS” DATA, WEB SOCKET ENABLES DATA TO BE “PUSHED”.
🔹 4. WEBHOOK
WEBHOOKS ARE USUALLY USED BY THIRD-PARTY ASYNCHRONOUS API CALLS. IN THE DIAGRAM BELOW, FOR EXAMPLE, WE USE STRIPE OR PAYPAL FOR PAYMENT CHANNELS AND REGISTER A WEBHOOK FOR PAYMENT RESULTS. WHEN A THIRD-PARTY PAYMENT SERVICE IS DONE, IT NOTIFIES THE PAYMENT SERVICE IF THE PAYMENT IS SUCCESSFUL OR FAILED. WEBHOOK CALLS ARE USUALLY PART OF THE SYSTEM’S STATE MACHINE.
🔹 5. GRPC
RELEASED IN 2016, GRPC IS USED FOR COMMUNICATIONS AMONG MICROSERVICES. GRPC LIBRARY HANDLES ENCODING/DECODING AND DATA TRANSMISSION.
🔹 6. SOAP
SOAP STANDS FOR SIMPLE OBJECT ACCESS PROTOCOL. ITS PAYLOAD IS XML ONLY, SUITABLE FOR COMMUNICATIONS BETWEEN INTERNAL SYSTEMS.
AbnAsia.org Software. Faster. Better. More Reliable. +84945924877 (Asia# Mobile, WhatsApp, Telegram, Viber, Zalo); +16699996606 (US# Mobile, WhatsApp, Telegram) [email protected]