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: