API-urile conectează aplicațiile prin protocoale și arhitecturi clare. O arhitectură API este un cadru de reguli pentru crearea interfețelor software. Regulile determină cum să ofere utilizatorilor funcționalitatea serverului. Tipul de arhitectură determină regulile și structurile care guvernează API-ul.
Există multe tipuri diferite de arhitectură API, de la REST la RPC. Aflarea despre structura și compoziția lor vă va ajuta să alegeți unul pentru aplicația dvs.
1. ODIHNĂ
API-urile REST sunt moderne și sunt cea mai populară arhitectură API pe care o folosesc dezvoltatorii. ODIHNĂ (transferul de stat reprezentativ) este o arhitectură utilizată pentru a proiecta aplicații client-server. Nu este un protocol sau standard, așa că îl puteți implementa în diferite moduri. Acest aspect vă crește flexibilitatea ca dezvoltator.
REST permite accesul la datele solicitate stocate într-o bază de date. Puteți efectua funcțiile de bază CRUD cu un API REST. Când clienții solicită conținut printr-un API RESTful, aceștia trebuie să utilizeze anteturile și parametrii potriviți. Anteturile conțin metadate utile pentru a identifica o resursă, cum ar fi codurile de stare și autorizarea.
Informațiile transferate prin HTTP pot fi în JSON, HTML, XML sau text simplu. JSON este cel mai frecvent utilizat format de fișier pentru API-urile REST. JSON este independent de limbaj și poate fi citit de oameni.
2. SĂPUN
Protocol simplu de acces la obiect (SOAP) este un protocol API oficial. Consorțiul World Wide Web (W3C) menține protocolul SOAP, care este una dintre cele mai vechi arhitecturi API. Designul său ușurează comunicarea între aplicațiile construite cu diferite limbi și platforme.
Formatul SOAP descrie un API folosind limbajul de descriere a serviciului web (WSDL). Este scris în limbajul extensiv de marcare (XML). Formatul impune standarde de conformitate încorporate care sporesc securitatea, consistența, izolarea și durabilitatea. Aceste proprietăți asigură tranzacții de baze de date fiabile, făcând SOAP mai bun pentru dezvoltarea întreprinderilor.
Când un utilizator solicită conținut printr-un API SOAP, acesta trece prin protocoalele standard de nivel. Răspunsul este în format XML, pe care oamenii și mașinile îl pot citi. La fel ca API-urile REST, API-urile SOAP nu stochează informații în cache. Dacă aveți nevoie de date mai târziu, trebuie să faceți o altă solicitare.
SOAP acceptă atât schimburi de date cu stat, cât și fără stat.
3. GraphQL
GraphQL este un limbaj de interogare pentru un API. Este un runtime pe partea de server care execută interogări bazate pe un set definit de date. GraphQL are cazuri de utilizare specifice. Arhitectura sa vă permite să declarați informațiile specifice de care aveți nevoie.
Spre deosebire de arhitectura REST, unde HTTP se ocupă de cererile și răspunsurile clientului, GraphQL solicită date cu interogări. Un serviciu GraphQL definește tipurile și câmpurile acestor tipuri, apoi furnizează funcții pentru fiecare câmp și tip.
Serviciul primește Interogări GraphQL să valideze și să execute. În primul rând, verifică o interogare pentru a se asigura că se referă la tipurile și câmpurile definite. Apoi, rulează funcțiile asociate pentru a produce rezultatul dorit.
GraphQL este excelent pentru anumite cazuri de utilizare, cum ar fi preluarea datelor din mai multe surse. De asemenea, puteți controla preluarea datelor și reglați lățimea de bandă pentru dispozitive mai mici.
4. Apache Kafka
Apache Kafka este o platformă distribuită care acceptă fluxul de evenimente. Streamingul de evenimente este procesul de captare a datelor în timp real din surse. Sursele pot fi baze de date, servere sau aplicații software. Sistemul Kafka este format din servere și clienți. Comunicarea are loc printr-un protocol de rețea TCP.
Puteți implementa sistemul pe hardware, mașini virtuale și containere. Puteți face acest lucru on-premise și în medii cloud. Sistemul Apache Kafka captează date, procesează și reacționează la acestea în timp real. De asemenea, poate direcționa datele către o destinație preferată în timp real. Kafka captează și stochează date în sistem pe care le puteți prelua ulterior pentru utilizare.
Kafka acceptă un flux continuu și integrarea datelor. Acest lucru asigură că informațiile sunt la locul potrivit, la momentul potrivit. Streamingul de evenimente se poate aplica multor cazuri de utilizare care necesită fluxuri de date live. Acestea includ instituții financiare, asistență medicală, guvern, industria transporturilor și companii de software.
5. AsyncAPI
AsyncAPI este o inițiativă open-source care ajută la construirea și menținerea arhitecturilor bazate pe evenimente. Specificațiile sale au multe lucruri în comun cu specificațiile OpenAPI. AsyncAPI este în esență o adaptare și o îmbunătățire a specificațiilor OpenAPI, cu câteva diferențe.
Arhitectura AsyncAPI reunește un amestec de API-uri REST și API-uri bazate pe evenimente. Schemele sale pentru gestionarea cererilor și răspunsurilor sunt similar cu cel al API-urilor de evenimente. AsyncAPI oferă specificații pentru a descrie și a documenta aplicațiile asincrone într-un mod care poate fi citit de mașină format. De asemenea, oferă instrumente precum generatoarele de cod pentru a facilita implementarea acestora de către utilizatori.
AsyncAPI îmbunătățește starea actuală a arhitecturii Event-Driven (EDA). Scopul este de a facilita lucrul cu EDA, așa cum este cu API-urile REST. Inițiativa AsyncAPI oferă documentație și cod care sprijină gestionarea evenimentelor. Majoritatea proceselor utilizate în API-urile REST se aplică API-urilor bazate pe evenimente/asincrone.
Utilizarea specificației AsyncAPI pentru a documenta sistemele bazate pe evenimente este vitală. Acesta guvernează și menține coerența și eficiența echipelor care lucrează la proiecte bazate pe evenimente.
6. Apel de procedură de la distanță (RPC)
RPC este un protocol de comunicare software care permite comunicarea între diferite programe dintr-o rețea. De exemplu, un program poate solicita informații de la un alt computer din rețea. Nu trebuie să respecte protocoalele de rețea. Puteți utiliza RPC pentru a apela procese pe sistemele de la distanță la fel ca în sistemul local.
RPC funcționează pe modelul client-server. Programul client solicită și programul server răspunde cu un serviciu. RPC-urile funcționează în sincronie. Când un program trimite o solicitare, acesta rămâne suspendat până când primește un răspuns de la server.
RPC-urile sunt cele mai bune pentru sistemele distribuite. Sunt cele mai bune pentru sistemele bazate pe comandă și au sarcini utile ușoare care măresc performanța.
Cum să alegeți arhitectura API potrivită
Arhitectura API corectă depinde de cazul dvs. de utilizare. Arhitectura determină metodologia de dezvoltare a API-ului și modul în care va rula. Designul arhitectural al API-ului definește componentele și interacțiunile acestuia.
Luați decizii arhitecturale înainte de a proiecta și dezvolta API-ul. Determinați cerințele tehnice ale API-ului, nivelul, managementul ciclului de viață și securitatea. Proiectele de arhitectură API conțin straturi structurale. Straturile ghidează dezvoltarea și asigură că API-ul creat își servește scopul propus.