Tutorial Servicii Web RESTful: Exemplu de API REST

⚡ Rezumat inteligent

Serviciile Web RESTful oferă o abordare ușoară, fără stare, pentru ca aplicațiile să schimbe date prin HTTP folosind verbe standard. Acestea expun resursele prin intermediul unor procese curate. URLs, permițând comunicarea scalabilă și independentă de platformă între clienți distribuiți, servere, dispozitive mobile și platforme moderne de cloud și inteligență artificială.

  • 📊 Verbe de bază: GET, POST, PUT și DELETE sunt mapate direct pentru operațiunile de citire, creare, actualizare și ștergere efectuate asupra resurselor serverului.
  • 🧩 Elemente cheie: Resursele, verbele de solicitare, anteturile, corpul cererii, corpul răspunsului și codurile de stare definesc împreună fiecare interacțiune REST.
  • 🌐 Architectura: REST urmează un model client-server care rămâne fără stare, stratificat și prietenos cu memoria cache pentru solicitări repetate mai rapide și mai fiabile.
  • 🛠️ Implementare: ASP.NET cu un șablon de serviciu WCF permite dezvoltatorilor să expună endpoint-uri RESTful în Visual Studio cu o configurație minimă.
  • 🧪 Testarea: Browserele gestionează apelurile GET, în timp ce Fiddler or Postman trimite cereri POST, PUT și DELETE pentru verificare.
  • 🔐 Cele mai bune practici: HTTPS, autentificare cu token-uri, coduri de stare semnificative și versiune controlată URLmenține API-urile REST de producție în siguranță și ușor de întreținut.
  • 🤖 Integrare AI: OpenAI, Anthropic și Google publicați API-uri REST care susțin chatbot-uri, agenți autonomi și fluxuri de lucru de învățare automată.

Tutorial Servicii Web RESTful

Ce este Restful Web Services?

Servicii web odihnitoare este un serviciu ușor, ușor de întreținut și scalabil, construit pe arhitectura REST. Un serviciu web Restful expune o API din aplicația dvs. într-un mod sigur, uniform și fără stare clientului apelant. Clientul apelant poate apoi efectua operațiuni predefinite utilizând serviciul Restful. Protocolul de bază pentru REST este HTTP, iar REST înseamnă REpresentational State Transfer (Transfer de stare reprezentativă).

În termeni simpli, REST definește o modalitate standard prin care resursele, cum ar fi documentele, imaginile sau înregistrările bazei de date, pot fi create, citite, actualizate și șterse pe web. Deoarece se bazează pe HTTP simplu, aproape orice limbaj de programare sau dispozitiv poate consuma un serviciu RESTful fără instrumente speciale.

De ce să folosiți servicii web odihnitoare?

Înainte de a explora detaliile tehnice, este util să înțelegem de ce REST a devenit atât de popular. Serviciile web RESTful au devenit importante din următoarele motive:

1. Limbi și medii eterogene – Acesta este unul dintre motivele fundamentale, care este același cu cel pe care l-am văzut pentru SOAP de asemenea.

  • Permite aplicațiilor web construite pe diverse limbaje de programare să comunice între ele.
  • Cu ajutorul serviciilor Restful, aceste aplicații web pot rezida în medii diferite; unele ar putea fi pe Windows, iar altele ar putea fi pe Linux.

În final, indiferent de mediu, rezultatul ar trebui să fie întotdeauna același: aplicațiile ar trebui să poată comunica între ele. Serviciile web odihnitoare oferă această flexibilitate aplicațiilor construite pe diverse limbaje de programare și platforme.

Imaginea de mai jos oferă un exemplu de aplicație web care are nevoie să comunice cu alte aplicații precum Facebook, Twitter și Google.

Dacă o aplicație client ar trebui să funcționeze cu site-uri precum Facebook și Twitter, dezvoltatorii ar trebui, în mod normal, să știe pe ce limbaj și platformă sunt construite acele site-uri. Pe baza acestui fapt, ar putea scrie codul de interfață, dar această abordare s-ar putea dovedi a fi un coșmar de întreținut.

În schimb, Facebook, Twitter și Google expun funcționalitatea lor sub forma unor servicii web Restful. Acest lucru permite oricărei aplicații client să apeleze aceste servicii web prin REST, indiferent de tehnologia subiacentă.

De ce să folosiți servicii web odihnitoare

2. Evenimentul Dispozitivelor – În zilele noastre, totul trebuie să lucreze Mobil dispozitive, fie că este vorba de un telefon mobil, un laptop sau chiar un sistem auto.

Imaginați-vă efortul necesar pentru a codifica aplicații pe aceste dispozitive pentru a comunica cu aplicațiile web normale. Din nou, API-urile Restful simplifică această sarcină deoarece, așa cum am menționat la punctul unu, nu este nevoie să cunoașteți stratul subiacent al dispozitivului.

3. Evenimentul Norului – Totul se mută în cloud. Aplicațiile se mută încetul cu încetul către sisteme bazate pe cloud, cum ar fi Azure or Amazon. Azure și Amazon oferă numeroase API-uri bazate pe arhitectura Restful. Prin urmare, aplicațiile trebuie acum dezvoltate astfel încât să fie compatibile cu cloud-ul. Întrucât toate arhitecturile bazate pe cloud funcționează pe principiul REST, este logic ca serviciile web să fie programate pe o arhitectură bazată pe REST pentru a utiliza la maximum serviciile cloud.

Elemente cheie RESTful

Serviciile web REST au parcurs un drum lung de la începuturile lor. În 2002, consorțiul Web a lansat definiția serviciilor web WSDL și SOAP. Aceasta a format standardul modului în care au fost implementate serviciile web.

În 2004, consorțiul web a lansat și definiția unui standard suplimentar numit RESTful. În ultimii ani, acest standard a devenit destul de popular și este utilizat acum de multe dintre cele mai populare site-uri web din întreaga lume, inclusiv Facebook și Twitter.

REST este o modalitate de a accesa resurse care se află într-un anumit mediu. De exemplu, ați putea avea un server care găzduiește documente, imagini sau videoclipuri importante. Toate acestea sunt exemple de resurse. Dacă un client, cum ar fi un browser web, are nevoie de oricare dintre aceste resurse, trebuie să trimită o cerere către server. Serviciile REST definesc o modalitate standard în care aceste resurse pot fi accesate.

Elementele cheie ale unei implementări RESTful sunt următoarele:

  1. Resurse – Primul element cheie este resursa în sine. Să presupunem că o aplicație web de pe un server are înregistrări ale mai multor angajați. Să presupunem că URL al aplicației web este https://demo.guru99.comAcum, pentru a accesa o resursă de înregistrare a unui angajat prin intermediul serviciilor REST, se poate executa comanda https://demo.guru99.com/employee/1Această comandă îi spune serverului web să furnizeze detaliile angajatului al cărui număr de angajat este 1.
  2. Cerere verbe – Acestea descriu ce doriți să faceți cu resursa. Un browser emite un verb GET pentru a instrui endpoint-ul că dorește să obțină date. Cu toate acestea, există multe alte verbe disponibile, inclusiv POST, PUT și DELETE. Așadar, în cazul exemplului https://demo.guru99.com/employee/1, browserul web emite de fapt un verb GET deoarece dorește să obțină detaliile înregistrării angajatului.
  3. Solicitați anteturi – Acestea sunt instrucțiuni suplimentare trimise odată cu solicitarea. Acestea pot defini tipul de răspuns necesar sau detaliile de autorizare.
  4. Organismul de solicitare – Acestea sunt datele trimise odată cu cererea. Datele sunt trimise în mod normal în corpul cererii atunci când o cerere POST este făcută către serviciul web REST. Într-un apel POST, clientul spune serviciului web REST că dorește să adauge o resursă la server. Prin urmare, corpul cererii ar conține detaliile resursei care trebuie adăugată.
  5. Corpul de răspuns – Acesta este corpul principal al răspunsului. Așadar, în exemplul nostru de API RESTful, dacă am interoga serverul web prin intermediul cererii https://demo.guru99.com/employee/1, serverul web ar putea returna un document XML cu toate detaliile angajatului în corpul răspunsului.
  6. Codurile de stare de răspuns – Acestea sunt codurile generale returnate împreună cu răspunsul de la serverul web. Un exemplu este codul 200, care este returnat în mod normal atunci când nu există nicio eroare la returnarea unui răspuns către client.

Metode odihnitoare

Diagrama de mai jos prezintă majoritatea verbelor (POST, GET, PUT și DELETE) și un exemplu REST API despre ce ar însemna acestea.

Să presupunem că avem un serviciu web RESTful definit la locația https://demo.guru99.com/employeeCând clientul face o cerere către acest serviciu web, poate specifica oricare dintre verbele HTTP normale GET, POST, DELETE și PUT. Mai jos este prezentat ce s-ar întâmpla dacă verbele respective ar fi trimise de client.

  1. POST – Aceasta ar fi utilizată pentru a crea un nou angajat folosind serviciul web RESTful.
  2. GET – Aceasta ar fi utilizată pentru a obține o listă a tuturor angajaților care utilizează serviciul web RESTful.
  3. PUT – Aceasta ar fi utilizată pentru a actualiza toți angajații care utilizează serviciul web RESTful.
  4. DELETE – Aceasta ar fi utilizată pentru a șterge toți angajații care utilizează serviciul RESTful.

Acum să privim din perspectiva unei singure înregistrări. Să presupunem că există o înregistrare de angajat cu numărul de angajat 1. Următoarele acțiuni ar avea semnificațiile lor respective.

  1. POST – Acest lucru nu ar fi aplicabil, deoarece preluăm datele angajatului 1, care este deja creat.
  2. GET – Aceasta ar fi utilizată pentru a obține detaliile angajatului cu numărul de angajat 1 utilizând serviciul web RESTful.
  3. PUT – Aceasta ar fi utilizată pentru a actualiza detaliile angajatului cu numărul de angajat 1 utilizând serviciul web RESTful.
  4. DELETE – Această funcție este utilizată pentru a șterge detaliile angajatului cu numărul de angajat 1.

Metode odihnitoare

Odihnitor Architectură

O aplicație sau arhitectură considerată RESTful sau în stil REST are următoarele caracteristici.

1. Starea și funcționalitatea sunt împărțite în resurse distribuite – Aceasta înseamnă că fiecare resursă ar trebui să fie accesibilă prin comenzile HTTP normale GET, POST, PUT sau DELETE. Așadar, dacă cineva dorește să obțină un fișier de pe un server, ar trebui să poată emite solicitarea GET și să obțină fișierul. Dacă dorește să pună un fișier pe server, ar trebui să poată emite fie solicitarea POST, fie solicitarea PUT. În cele din urmă, dacă dorește să șteargă un fișier de pe server, poate emite solicitarea DELETE.

2. Arhitectura este client/server, fără stare, stratificată și suportă memorarea în cache.

  • Client-server este arhitectura tipică în care serverul poate fi serverul web care găzduiește aplicația, iar clientul poate fi la fel de simplu ca browserul web.
  • Apatrid înseamnă că starea aplicației nu este menținută în REST. De exemplu, dacă ștergeți o resursă de pe un server utilizând comanda DELETE, nu vă puteți aștepta ca informațiile de ștergere să fie transmise la următoarea cerere.

Pentru a vă asigura că resursa este ștearsă, va trebui să emiteți cererea GET. Cererea GET ar fi utilizată mai întâi pentru a obține toate resursele de pe server, după care ar trebui să verificați dacă resursa a fost într-adevăr ștearsă.

Principii și constrângeri RESTFul

Arhitectura REST se bazează pe câteva caracteristici, care sunt detaliate mai jos. Orice serviciu web RESTful trebuie să respecte caracteristicile de mai jos pentru a putea fi numit RESTful. Aceste caracteristici sunt cunoscute și sub denumirea de principii de proiectare care trebuie respectate atunci când se lucrează cu servicii bazate pe RESTful.

  1. RESTFul Client-Server

    Principiul client-server RESTFul

Aceasta este cea mai fundamentală cerință a unei arhitecturi bazate pe REST. Înseamnă că serverul va avea un serviciu web RESTful care oferă funcționalitatea necesară clientului. Clientul trimite o cerere către serviciul web de pe server. Serverul fie respinge cererea, fie se conformează și oferă un răspuns adecvat clientului.

  1. apatrid

Conceptul de „stateless” înseamnă că depinde de client să se asigure că toate informațiile necesare sunt furnizate serverului. Acest lucru este necesar pentru ca serverul să poată procesa răspunsul în mod corespunzător. Serverul nu ar trebui să păstreze niciun fel de informații între solicitările clientului. Este o secvență întrebare-răspuns foarte simplă și independentă. Clientul pune o întrebare, iar serverul răspunde în mod corespunzător. Când clientul pune o altă întrebare, serverul nu își va aminti scenariul anterior de întrebare-răspuns și va trebui să răspundă independent la noua întrebare.

  1. Cache

Principiul memoriei cache RESTFul

Conceptul de memorie cache ajută la rezolvarea problemei lipsei de stare descrisă la ultimul punct. Deoarece fiecare solicitare server-client este independentă prin natura sa, uneori clientul ar putea solicita serverului aceeași solicitare din nou, chiar dacă a solicitat-o ​​deja în trecut. Această solicitare va merge la server, iar serverul va oferi un răspuns, ceea ce crește traficul în rețea. Memoria cache este un concept implementat pe client pentru a stoca solicitările care au fost deja trimise către server. Așadar, dacă aceeași solicitare este trimisă de client, în loc să meargă la server, aceasta va merge în memoria cache și va obține informațiile necesare. Acest lucru economisește traficul de rețea dus-întors de la client la server.

  1. Sistem stratificat

Conceptul unui sistem stratificat este acela că orice strat suplimentar, cum ar fi un strat middleware, poate fi inserat între client și serverul care găzduiește serviciul web RESTFul. (Strat middleware este locul unde este creată toată logica de business. Acesta poate fi un serviciu suplimentar cu care clientul interacționează înainte de a apela serviciul web.) Dar introducerea acestui strat trebuie să fie transparentă, astfel încât să nu perturbe interacțiunea dintre client și server.

  1. Interfață/Uniformă Contract

Aceasta este tehnica de bază a modului în care ar trebui să funcționeze serviciile web RESTful. RESTful funcționează practic pe stratul web HTTP și folosește verbele cheie de mai jos pentru a lucra cu resursele de pe server.

  • POST – Pentru a crea o resursă pe server.
  • GET – Pentru a prelua o resursă de pe server.
  • PUT – Pentru a schimba starea unei resurse sau pentru a o actualiza.
  • ȘTERGERE – Pentru a elimina sau șterge o resursă de pe server.

REST vs SOAP: Diferențe cheie

Dezvoltatorii adesea evaluează REST față de SOAP atunci când proiectează un serviciu web. Ambele permit aplicațiilor distribuite să comunice, dar diferă puternic în ceea ce privește filosofia. REST este un stil arhitectural care folosește verbe HTTP simple și formate ușoare precum JSON, în timp ce SOAP este un protocol strict care se bazează pe plicuri XML și o înțelegere formalătract. Tabelul de mai jos prezintă pe scurt cele mai importante distincții.

Aspect REST SOAP
Tip Archistil textural Protocol strict
Format date JSON, XML, text simplu, HTML Numai XML
Transport Numai HTTP HTTP, SMTP, TCP și altele
Stat apatrid Apatrid sau cu stat
Performanţă Mai rapid și mai ușor Mai greu din cauza supraîncărcării XML
Cel mai bun pentru API-uri web, mobile și publice Aplicații pentru întreprinderi care necesită securitate strictă

În practică, REST este alegerea implicită pentru API-urile web și mobile publice, deoarece este mai rapid și mai ușor de utilizat, în timp ce SOAP rămâne util pentru sistemele enterprise care necesită securitate încorporată și confidențialitate formală.tracts.

Creați primul serviciu web Restful în ASP.NET

Acum, în acest tutorial REST API, vom învăța cum să creăm un serviciu web Restful în ASP.NET.

Serviciile web pot fi create într-o varietate de limbaje, iar multe medii de dezvoltare integrate pot fi utilizate pentru a crea servicii bazate pe REST.

În acest exemplu de API RESTful, vom crea aplicația noastră REST în .NET folosind Visual Studio. Vom avea un serviciu web Restful care va lucra cu setul de date de mai jos.

Setul de date de mai jos reprezintă un exemplu de API REST al unei companii care expune tutorialele pe care le are pe baza Tutorialid-ului.

Tutorialid TutorialName
0 Arrays
1 cozile
2 Stive

În exemplul nostru de tutorial REST API, vom implementa verbele Restful de mai jos.

  1. GET Tutorial – Când un client invocă această API Restful, i se va oferi întregul set de tutoriale disponibile de la serviciul web.
  2. GET Tutorial/Tutorialid – Când un client invocă această API Restful, i se va atribui numele tutorialului pe baza Tutorialid-ului trimis de client.
  3. POST Tutorial/Tutorialname – Când un client invocă această API Restful, clientul va trimite o cerere pentru a insera un nume de tutorial. Serviciul web va adăuga apoi numele tutorialului trimis la colecție.
  4. DELETE Tutorial/Tutorialid – Când un client invocă această API Restful, clientul va trimite o cerere de ștergere a unui Tutorialname pe baza Tutorialid. Serviciul web va șterge apoi numele tutorialului trimis din colecție.

Să urmăm pașii de mai jos pentru a crea primul nostru serviciu web RESTful, care realizează implementarea de mai sus.

Cum să creați primul serviciu web odihnitor

Pas 1) Creați un nou proiect.
Primul pas este să creați un gol Asp.Net aplicație web. Din Visual Studio 2013, faceți clic pe opțiunea de meniu Fișier->Proiect nou.

Creați un serviciu web odihnitor

După ce faceți clic pe opțiunea Proiect nou, Visual Studio vă va afișa o altă casetă de dialog pentru alegerea tipului de proiect și introducerea detaliilor necesare. Acest lucru este explicat în pasul următor.

Pas 2) Introduceți numele și locația proiectului.

  1. Asigurați-vă că alegeți mai întâi C# șablon web al aplicației web ASP.NET. Proiectul trebuie să fie de acest tip pentru a crea un proiect de servicii web. Alegând această opțiune, Visual Studio va efectua pașii necesari pentru a adăuga fișierele necesare pentru orice aplicație web.
  2. Dați un nume proiectului dumneavoastră, care în cazul nostru este „Webservice.REST”.
  3. Apoi, asigurați-vă că specificați o locație unde vor fi stocate fișierele proiectului.

Creați un serviciu web odihnitor

După ce ați terminat, veți vedea fișierul de proiect creat în exploratorul de soluții din Visual Studio 2013.

Creați un serviciu web odihnitor

Pas 3) Creați fișierul serviciului web.
Următorul pas este crearea fișierului de serviciu web care va conține serviciul web RESTful.

  1. Mai întâi, faceți clic dreapta pe fișierul proiectului, așa cum se arată mai jos.

Creați un serviciu web odihnitor

  1. În această etapă,
    1. Faceți clic dreapta pe fișierul proiectului.
    2. Alegeți opțiunea „Adăugați->Element nou”.

Creați un serviciu web odihnitor

În caseta de dialog care apare, trebuie să efectuați următoarele acțiuni.

  1. Alegeți opțiunea Serviciu WCF (compatibil cu Ajax). Alegerea unui fișier de acest tip determină Visual Studio să adauge cod de bază care vă ajută să creați un serviciu web RESTful. WCF este prescurtarea de la Windows Comunicarea FoundationWCF este o bibliotecă pentru aplicații de pe diverse platforme (sau de pe aceeași platformă) pentru a comunica prin diverse protocoale precum TCP, HTTP și HTTPS. Ajax este asincron. JavaScenariu și XML. AJAX permite paginilor web să fie actualizate asincron prin schimbul de cantități mici de date cu serverul din culise.
  2. Apoi, dați un nume pentru serviciu, care în cazul nostru este TutorialService.
  3. În cele din urmă, faceți clic pe butonul Adăugați pentru a adăuga serviciul la soluție.

Creați un serviciu web odihnitor

Pas 4) Faceți o configurație.
Următorul pas este să faceți o modificare de configurație pentru a permite acestui proiect să funcționeze cu servicii web RESTful. Aceasta necesită o modificare a fișierului numit Web.configAcest fișier apare în aceeași fereastră ca și fișierul proiectului Webservice. Fișierul Web.config conține toate configurațiile care fac ca aplicația web să funcționeze așa cum ar trebui. Modificarea făcută permite aplicației să trimită și să primească date ca un serviciu web RESTful pur.

  1. Faceți clic pe fișierul Web.config pentru a deschide codul.

Creați un serviciu web odihnitor

  1. Găsiți linia .

Creați un serviciu web odihnitor

  1. Schimbați linia la .

Creați un serviciu web odihnitor

Pas 5) Adăugați codul nostru pentru implementare.
Următorul pas este să adăugăm codul nostru pentru implementare. Tot codul de mai jos trebuie scris în fișierul TutorialService.svc.

  1. Primul pas este să adăugăm codul care să reprezinte datele noastre, care vor fi utilizate în programul nostru. Așadar, vom avea o listă de variabile de tip șir de caractere cu valorile „Arrays”, „Queues” și „Stacks”. Acestea vor reprezenta numele tutorialelor disponibile prin intermediul serviciului nostru web de găzduire.

Creați un serviciu web odihnitor

namespace Webservice.REST
{
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class TutorialService
{
private static List<String> lst = new List<String>
(new String[] {"Arrays","Queues","Stacks"});

Pas 6) Definiți codul pentru metoda noastră GET.
În continuare, vom defini codul pentru metoda noastră GET. Acest cod va fi, de asemenea, în același fișier TutorialService.svc. Acest cod va rula de fiecare dată când apelăm serviciul din browserul nostru.

Metoda de mai jos va fi utilizată pentru a îndeplini scenariul de mai jos.

  • Dacă un utilizator dorește o listă cu toate tutorialele disponibile, atunci ar trebui scris codul de mai jos pentru a realiza acest lucru.

Creați un serviciu web odihnitor

[WebGet(UriTemplate = "/Tutorial")]

public String GetAllTutorial()
{
    int count = lst.Count;
    String TutorialList = "";
    for (int i = 0; i < count; i++)
        TutorialList = TutorialList + lst[i] + ",";
    return TutorialList;
}

Code Explicaţie:-

  1. Prima linie de cod este cea mai importantă. Este folosită pentru a defini cum putem apela această metodă printr-un URLDeci, dacă linkul către serviciul nostru web este http://localhost:52645/TutorialService.svc și adăugăm „/Tutorial” la URL, ca în http://localhost:52645/TutorialService.svc/Tutorial, codul de mai sus va fi invocat. Atributul „WebGet” este un parametru care permite acestei metode să fie o metodă RESTful, astfel încât să poată fi invocată prin intermediul verbului GET.
  2. Această secțiune de cod este folosită pentru a parcurge lista noastră de șiruri din variabila „lst” și a le returna pe toate programului apelant.

Pas 7) Returnează rezultatul.
Codul de mai jos asigură că, dacă se efectuează un apel GET către serviciul Tutorial cu un ID Tutorial, acesta va returna numele tutorialului corespunzător pe baza ID-ului Tutorial.

Creați un serviciu web odihnitor

[WebGet(UriTemplate = "/Tutorial/{Tutorialid}")]

public String GetTutorialbyID(String Tutorialid)
{
    int pid;
    Int32.TryParse(Tutorialid, out pid);
    return lst[pid];
}

Code Explicaţie:-

  1. Prima linie de cod este cea mai importantă. Definește cum putem apela această metodă printr-un URLDeci, dacă linkul către serviciul nostru web este http://localhost:52645/TutorialService.svc și adăugăm „/Tutorial/{Tutorialid}” la URL, am putea apela serviciul web ca http://localhost:52645/TutorialService.svc/Tutorial/1, de exemplu. Serviciul web ar returna apoi numele tutorialului care avea ID-ul tutorialului 1.
  2. Această secțiune de cod este utilizată pentru a returna numele tutorialului al cărui ID de tutorial a fost transmis metodei web.
  • În mod implicit, ceea ce trebuie reținut este că tot ceea ce este transmis către URL în browser este un șir de caractere.
  • Dar trebuie să rețineți că indexul listei noastre trebuie să fie un număr întreg, așa că adăugăm codul necesar pentru a converti mai întâi Tutorialid-ul într-un număr întreg.
  • Apoi îl folosim pentru a accesa poziția indexului din lista noastră și a returna valoarea programului apelant în consecință.

Pas 8) Scrieți codul pentru metoda POST.
Următorul pas este să scriem codul pentru metoda noastră POST. Această metodă va fi invocată ori de câte ori dorim să adăugăm o valoare de tip șir de caractere la lista noastră de tutoriale prin intermediul metodei POST. De exemplu, dacă ați dori să adăugați numele tutorialului „Testare software”, atunci ar trebui să utilizați metoda POST.

Creați un serviciu web odihnitor

[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "/Tutorial/{str}")]

public void AddTutorial(String str)
{
    lst.Add(str);
}

Code Explicaţie:-

  1. Prima linie este atributul „WebInvoke”, care a fost atașat metodei noastre. Aceasta permite invocarea metodei prin apelul POST. Atributele RequestFormat și ResponseFormat trebuie menționate ca JSON, deoarece atunci când se postează valori într-un serviciu web RESTFul, valorile trebuie să fie în acest format.
  2. A doua linie de cod este utilizată pentru a adăuga valoarea șirului de caractere transmisă prin apelul POST la lista noastră existentă de șiruri de caractere din tutorial.

Pas 9) Adăugați o metodă pentru a gestiona operația DELETE.
În cele din urmă, vom adăuga metoda noastră pentru a gestiona operația DELETE. Această metodă va fi invocată ori de câte ori dorim să ștergem o valoare șir existentă din lista noastră de tutoriale prin intermediul metodei DELETE.

Creați un serviciu web odihnitor

[WebInvoke(Method = "DELETE", RequestFormat = WebMessageFormat.Json,
UriTemplate = "/Tutorial/{Tutorialid}", ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped)]

public void DeleteTutorial(String Tutorialid)
{
    int pid;
    Int32.TryParse(Tutorialid, out pid);
    lst.RemoveAt(pid);
}

Code Explicaţie:-

  1. Prima linie este atributul „WebInvoke”, care a fost atașat metodei noastre. Aceasta permite invocarea metodei prin apelul DELETE. Atributele RequestFormat și ResponseFormat trebuie menționate ca JSON, deoarece valorile trebuie să fie în acest format. Rețineți că parametrul Method este setat la „DELETE”. Aceasta înseamnă că, de fiecare dată când emitem verbul DELETE, această metodă va fi invocată.
  2. A doua linie de cod este folosită pentru a prelua Tutorialid-ul trimis prin apelul DELETE și, ulterior, pentru a șterge acel id din lista noastră. (Cel Int32 Funcția din cod este utilizată pentru a converti ID-ul Tutorialului dintr-o variabilă șir de caractere într-un număr întreg.)

Rularea primului serviciu web Restful

Acum, că am creat întregul nostru serviciu web în secțiunea de mai sus, haideți să vedem cum putem rula serviciul Tutorial astfel încât să poată fi invocat de la orice client.

Pentru a rula serviciul web, vă rugăm să urmați pașii de mai jos.

Pas 1) Faceți clic dreapta pe fișierul proiectului – Webservice.REST.

Rularea serviciului web Restful

Pas 2) Alegeți opțiunea de meniu „Setare ca proiect de pornire”. Aceasta va asigura că acest proiect este rulat atunci când Visual Studio rulează întreaga soluție.

Rularea serviciului web Restful

Pas 3) Următorul pas este rularea proiectului în sine. În funcție de browserul implicit instalat pe sistem, numele browserului corespunzător va apărea lângă butonul de rulare din Visual Studio. În cazul nostru, avem Google Chrome apărând. Doar faceți clic pe acest buton.

Rularea serviciului web Restful

Ieșire: -

Când proiectul este rulat, puteți naviga la secțiunea TutorialService.svc/Tutorial și veți obține rezultatul de mai jos.

Rularea serviciului web Restful

În rezultatul de mai sus,

  • Puteți observa că browserul invocă verbul „GET” și execută metoda „GetAllTutorial” în serviciul web. Acest modul este utilizat pentru a afișa toate tutorialele expuse de serviciul nostru web.

Testarea primului serviciu web Restful

În secțiunea de mai sus, am văzut deja cum se folosește browserul pentru a executa verbul „GET” și a invoca „GetAllTutorial”.

  1. Să folosim acum browserul pentru a executa următorul scenariu de caz de utilizare.

GET Tutorial/Tutorialid – Când un client invocă această API Restful, i se va atribui numele tutorialului pe baza Tutorialid-ului trimis de client.

În browser, adăugați șirul /1 după cuvântul Tutorial din URLDacă apăsați butonul Enter, veți obține rezultatul de mai jos.

Testarea Serviciului Web Restful

Acum veți vedea rezultatul „Queues” (Cozi), care corespunde numărului 1 din lista noastră de șiruri de tutoriale. Aceasta înseamnă că metoda „GetTutorialbyID” este acum invocată din serviciul nostru web. De asemenea, arată că valoarea 1 este transmisă cu succes prin intermediul browserului către serviciul nostru web și către metoda noastră și de aceea obținem valoarea corectă corespunzătoare a „Queues” (Cozi) în browser.

  1. În continuare, haideți să consumăm serviciul nostru web executând scenariul de mai jos. Pentru aceasta, trebuie să instalați instrumentul numit Fiddler, care este un instrument care poate fi descărcat gratuit.

POST Tutorial/NumeTutorial – Când un client invocă această API Restful, clientul va trimite o cerere pentru a insera un NumeTutorial. Serviciul web va adăuga apoi numele tutorialului trimis la colecție.

Pornește Fiddler instrumentul și urmați pașii de mai jos.

  1. Accesați secțiunea compozitor. Aceasta este folosită pentru a crea cereri care pot fi trimise către orice aplicație web.
  2. Asigurați-vă că tipul cererii este „POST” și că este corect URL este lovit, ceea ce în cazul nostru ar trebui să fie http://localhost:52645/TutorialService.svc/Tutorial.
  3. Asigurați-vă că tipul de conținut este marcat ca application/json. Rețineți că metoda noastră de solicitare POST din serviciul nostru web acceptă doar date în stil JSON, așa că trebuie să ne asigurăm că acest lucru este specificat atunci când trimitem o solicitare către aplicația noastră.
  4. În cele din urmă, trebuie să introducem datele noastre. Rețineți că metoda noastră pentru POST acceptă un parametru numit „str”. Așadar, specificăm aici că dorim să adăugăm o valoare numită „Trees” la colecția noastră de nume de tutoriale și să ne asigurăm că este etichetată la numele variabilei „str”.

În cele din urmă, faceți clic pe butonul Execute în Fiddler. Aceasta va trimite o solicitare către serviciul web pentru a POSTĂ datele „Arbori” în serviciul nostru web.

Testarea Serviciului Web Restful

Acum, când navigăm la Tutorial URL Pentru a afișa toate șirurile din lista tutorialului nostru, veți vedea că este prezentă și valoarea „Trees”. Aceasta arată că solicitarea POST către serviciul web a fost executată cu succes și că a fost adăugată cu succes în lista tutorialului nostru.

Testarea Serviciului Web Restful

  1. În continuare, să consumăm serviciul nostru web executând scenariul de mai jos. Pentru aceasta, trebuie să folosim și Fiddler instrument.

ȘTERGERE Tutorial/Tutorialid – Când un client invocă această API Restful, clientul va trimite o cerere de ștergere a unui Tutorialname pe baza Tutorialid-ului. Serviciul web va șterge apoi numele tutorialului trimis din colecție.

Pornește Fiddler instrumentul și urmați pașii de mai jos.

  1. Accesați secțiunea compozitor. Aceasta este folosită pentru a crea cereri care pot fi trimise către orice aplicație web.
  2. Asigurați-vă că tipul solicitării este „ȘTERGERE” și că este corect URL este lovit, ceea ce în cazul nostru ar trebui să fie http://localhost:52645/TutorialService.svc/TutorialAsigurați-vă că ID-ul folosit pentru ștergerea unui șir de caractere din listă este trimis prin intermediul URL ca parametru. În exemplul nostru REST, trimitem 1, deci acest lucru va șterge 2nd element din colecția noastră, care este „Cozi”.

În cele din urmă, faceți clic pe butonul Execute în FiddlerAceasta va trimite o solicitare către serviciul web pentru a ȘTERGE „Cozile” de date din serviciul nostru web.

Testarea Serviciului Web Restful

Acum, când navigăm la Tutorial URL Pentru a afișa toate șirurile din lista tutorialului nostru, veți observa că valoarea „Queues” nu mai este prezentă.

Aceasta arată că solicitarea DELETE către serviciul web a fost executată cu succes. Elementul cu indexul numărul 1 din lista noastră de șiruri de text din tutorial a fost șters cu succes.

Testarea Serviciului Web Restful

Cele mai bune practici pentru API-urile RESTful

Construirea unei API REST funcționale este doar primul pas; construirea uneia care se scalează și rămâne ușor de întreținut necesită disciplină. Practicile de mai jos ajută la menținerea endpoint-urilor previzibile, sigure și ușor de utilizat pentru alți dezvoltatori și agenți de inteligență artificială.

  • Folosește substantive, nu verbe, în URLs. Puncte finale precum /angajați/1 sunt mai clare decât /getEmployee?id=1, deoarece verbul HTTP descrie deja acțiunea.
  • Returnează coduri de stare semnificative. Trimiteți 200 pentru succes, 201 pentru o resursă creată, 400 pentru o cerere greșită, 401 pentru acces neautorizat, 404 pentru o resursă lipsă și 500 pentru erori de server.
  • Versionează-ți API-ul. Adăugarea unui segment de versiune, cum ar fi /v1/ în cale vă permite să evoluați serviciul fără a afecta clienții existenți.
  • Securizează fiecare punct final. Folosește HTTPS, împreună cu chei API sau token-uri OAuth 2.0 și validează toate datele de intrare.
  • Suportă paginarea și filtrarea. Returnarea colecțiilor mari în pagini menține răspunsurile rapide și reduce încărcarea serverului.

Respectarea acestor convenții face ca serviciul web RESTful să fie intuitiv de integrat, indiferent dacă consumatorul este o aplicație mobilă, un sistem partener sau un flux de lucru automatizat bazat pe inteligență artificială.

Întrebări frecvente

REST este un stil arhitectural care folosește verbe HTTP și formate ușoare precum JSON. SOAP este un protocol strict care se bazează pe plicuri XML. REST este mai rapid, mai simplu și mai bun pentru clienții web și mobili, în timp ce SOAP se potrivește sistemelor enterprise care necesită securitate încorporată.

API-urile RESTful returnează coduri de stare HTTP standard. 200 confirmă o solicitare reușită, 201 indică o resursă creată, 400 raportează o solicitare greșită, 401 înseamnă neautorizată, 404 semnalează o resursă lipsă, iar 500 semnalează o eroare de server în timpul procesării.

Securizați API-uri REST cu HTTPS pentru criptarea transportului, chei API sau token-uri OAuth 2.0 pentru autentificare, control al accesului bazat pe roluri pentru autorizare, limitare a ratei pentru a preveni abuzurile și validare strictă a intrărilor. Înregistrarea cererilor ajută la auditare și la răspunsul la incidente.

Furnizori de IA precum OpenAI, Anthropic și Google expune puncte finale REST care acceptă solicitări JSON și returnează text generat. Dezvoltatorii trimit cereri POST cu chei API, iar serviciul răspunde cu ieșire de model, activând chatbot-uri, agenți și conducte de automatizare.

Da. Agenții IA moderni folosesc apelarea instrumentelor sau apelarea funcțiilor pentru a invoca endpoint-uri REST în timpul unei conversații. Agentul alege un endpoint, construiește sarcina JSON, lansează cererea și citește răspunsul pentru a-și planifica următoarea acțiune fără intervenție umană.

Un browser web poate testa direct apelurile GET. Pentru cererile POST, PUT și DELETE, dezvoltatorii folosesc instrumente precum Fiddler or Postman, care vă permit să setați anteturi, să alegeți un verb și să inspectați răspunsul.

Serviciile REST schimbă de obicei date în JSON, deoarece este ușor de analizat și de formatat. De asemenea, pot utiliza XML, HTML sau text simplu. Clientul și serverul convin asupra formatului folosind antetele HTTP Content-Type și Accept.

Rezumați această postare cu: