Înțelegerea serviciilor web
După citirea acestui articol, vei obține o înțelegere completă a serviciilor web, inclusiv scopul lor, aplicațiile, beneficiile și tehnologiile de bază, cum ar fi arhitectura REST și protocolul de mesaje SOAP. Indiferent dacă ești nou în domeniul serviciilor web sau vrei să-ți extinzi cunoștințele, acest ghid te va echipa cu informațiile necesare pentru a începe.
Să începem cu începutul.
Ce sunt serviciile web?
Odată cu evoluția internetului, a apărut și conceptul de serviciu web.
Un serviciu web constă într-o colecție de operațiuni accesibile prin rețea și protocolul HTTP. Odată ce devin disponibile public sau printr-o listă de acces, beneficiile sunt accesibile de către una sau mai multe aplicații. Acesta asigură comunicarea între diferite aplicații software care pot rula pe platforme diferite. În cazurile generale, reprezintă interfața web către o bază de date.
Serviciile web moderne suportă atât funcționalități sincrone, cât și asincrone.
Conceptul REST
Este un stil arhitectural simplu, bazat pe standardele Web și HTTP, care a devenit chiar mai utilizat decât modelul SOAP.
Există cinci metode principale HTTP utilizate pentru definirea operațiunilor unui serviciu web RESTful:
- POST – crearea unui resurs;
- PUT – actualizarea stării unei resurse;
- PATCH – actualizare parțială a resursei;
- GET – citirea / returnarea unei resurse fără a o modifica;
- DELETE – ștergerea unei resurse.
Resursele pot fi reprezentate în mai multe formate: JSON sau XML.
Serviciile Web sunt o arhitectură scalabilă deoarece separă responsabilitățile aplicației client de cele ale serverului. Este un model fără stare deoarece serverul nu păstrează starea clientului.
Serviciile Web sunt adesea folosite cu un sistem de caching pentru entitățile care nu suferă modificări semnificative. Acest lucru duce la o creștere a vitezei de răspuns a serviciului web.
Exemplu de mesaj JSON:
{
“first_name”: ”Ioan”,
“last_name”: ”Pop”,
“age”: 32,
“benefits”: [“scalabilitate”, “interoperabilitate”, “distribuție”],
“address”: {
“city”: ”Baia Mare”,
“street”: “Mihai Eminescu”,
“number”: 23
}
}
Despre SOAP (Simple Object Access Protocol)
SOAP a fost primul protocol pentru conectarea la serviciile web SOA (Service Oriented Architecture). SOAP este construit pe specificația XML și folosește HTTP pentru transport.
Un mesaj SOAP este definit ca o structură de antet și un element de corp. Antetul poate conține informații de autentificare sau definiția tipurilor complexe de date. Elementul de corp descrie metodele web și informațiile despre parametrii acestora.
Envelope SOAP:
<soap:Envelope xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance>
<soap:Body>
<AWeserviceResponse xmls=http://tempuri.org/>
<AWebServiceResult>string</AWebServiceResul>
<AWebserviceResponse>
<soap:Body>
</soap:Envelope>
Cele mai bune practici de dezvoltare
Versionare
Lansarea unei noi versiuni a serviciului web care nu este compatibilă cu versiunea anterioară necesită versionarea serviciului web și menținerea ambelor versiuni atâta timp cât clienții adoptă noua versiune.
Documentație
Serviciile web ar trebui să afișeze informații despre metadatele operațiunilor pe care le pot efectua. Fiecare metodă web ar trebui să fie descrisă prin metoda HTTP, URI, anteturile HTTP Accept și Content-Type, coduri posibile ale răspunsurilor HTTP, anteturi personalizate, exemplu de răspuns și exemple de corpuri de solicitare.
Logare
Informațiile de logare ar trebui să fie grupate în aceeași secțiune a cererii și imprimate la final pentru a facilita găsirea acestora în fișierele de log.
Gestionarea erorilor
Erorile trebuie raportate clientului prin coduri de stare HTTP:
200 Ok – Succes
400 – Cerere incorectă
401 – Neautorizat
403 – Interzis
404 – Negăsit
405 – Metodă nepermisă
500 – Eroare internă de server
503 – Serviciu indisponibil
Design URI
UR-urile ar trebui să fie concise, ușor de reținut, neambigue în privința resursei gestionate și construite din substantive care descriu resursa, nu verbe care descriu acțiunea. Acțiunea este descrisă de metodele de cerere HTTP care implicite descriu tipul de acțiune realizată asupra resursei. Este mai greu să schimbi URI-urile unui serviciu web odată ce acestea sunt publicate și utilizate de clienți. URI /client/{id}/message/{msg_id}
Beneficii
Interoperabilitate
Integrarea cu serviciile web oferă o soluție viabilă atunci când lucrezi cu diferite sisteme, sisteme legate sau aplicații în alte limbaje de programare. Această problemă a fost mult discutată încă din anii 2000.
Ușurința utilizării
Serviciile web sunt construite pentru a fi accesibile prin web, la fel ca o pagină HTML accesibilă prin Internet.
Reutilizare
O aplicație client poate folosi mai multe servicii web, adăugând valoare managementului informațiilor. Prin serviciile web, poți integra aplicații diferite, în special sisteme legate.
Distribuție
Distribuirea unui serviciu web utilizând un server cu funcționalități sincrone sau asincrone este simplă. În același timp, o nouă versiune a serviciului poate fi instalată și deveni accesibilă într-un timp scurt.
Calitate
Odată construit, serviciul web este testat independent de aplicațiile client, ceea ce se face într-un timp mai scurt decât aplicațiile monolitice.
Cost
Odată ce un set de servicii web este expus, aplicațiile client sunt dezvoltate mult mai ușor și la costuri mai mici datorită timpului mai scurt de dezvoltare și integrare.
De ce să folosești servicii web
- Pentru a oferi integrare punct-cu-punct;
- Pentru a gestiona activele legate;
- Pentru a vinde Software-as-a-Service clienților tăi;
- Pentru a oferi API-uri web pentru afacerea ta către diferite aplicații din organizația ta;
- Pentru a reduce costurile de dezvoltare.