RESTful-verkkopalveluiden opetusohjelma: REST API -esimerkki

โšก ร„lykรคs yhteenveto

RESTful-verkkopalvelut tarjoavat sovelluksille kevyen ja tilattoman lรคhestymistavan tiedonvaihtoon HTTP:n kautta kรคyttรคen standardiverbejรค. Ne paljastavat resursseja puhtaiden URLs, mikรค mahdollistaa skaalautuvan, alustasta riippumattoman kommunikaation hajautettujen asiakkaiden, palvelimien, mobiililaitteiden ja modernien pilvi- ja tekoรคlyalustojen vรคlillรค.

  • ๐Ÿ“Š Ydinverbit: GET-, POST-, PUT- ja DELETE-kรคskyt yhdistรคvรคt ne suoraan palvelinresursseihin suoritettavien luku-, luonti-, pรคivitys- ja poistotoimintojen suorittamiseen.
  • ๐Ÿงฉ Tรคrkeimmรคt elementit: Resurssit, pyyntรถverbit, otsikot, pyynnรถn runko, vastauksen runko ja tilakoodit yhdessรค mรครคrittelevรคt jokaisen REST-vuorovaikutuksen.
  • ๐ŸŒ Archirakenne: REST noudattaa asiakas-palvelin-mallia, joka pysyy tilattomana, kerroksellisena ja vรคlimuistiystรคvรคllisenรค nopeampia ja luotettavampia toistuvia pyyntรถjรค varten.
  • ๐Ÿ› ๏ธ toteutus: ASP.NET ja WCF-palvelumalli antavat kehittรคjille mahdollisuuden kรคyttรครค RESTful-pรครคtepisteitรค Visual Studiossa minimaalisella kokoonpanolla.
  • ๐Ÿงช testaus: Selaimet kรคsittelevรคt GET-kutsuja, kun taas Fiddler or Postman Lรคhetรค POST-, PUT- ja DELETE-pyyntรถjรค vahvistusta varten.
  • ๐Ÿ” Parhaat kรคytรคnnรถt: HTTPS, token-todennus, merkitykselliset tilakoodit ja versiointi URLpitรคvรคt tuotantoympรคristรถjen REST-rajapinnat turvallisina ja yllรคpidettรคvinรค.
  • ๐Ÿค– AI-integraatio: OpenAI, antrooppinen ja Google julkaise REST-rajapintoja, jotka tukevat chatbotteja, autonomisia agentteja ja koneoppimisen tyรถnkulkuja.

RESTful Web Services -opastus

Mikรค on Restful Web Services?

Rauhalliset verkkopalvelut on kevyt, yllรคpidettรคvรค ja skaalautuva palvelu, joka on rakennettu REST-arkkitehtuurille. Restful-verkkopalvelu paljastaa sovelluksesi API:n turvallisella, yhdenmukaisella ja tilattomalla tavalla kutsuvalle asiakkaalle. Kutsuva asiakas voi sitten suorittaa ennalta mรครคritettyjรค toimintoja Restful-palvelun avulla. RESTin pohjana oleva protokolla on HTTP, ja REST on lyhenne sanoista REpresentational State Transfer.

Yksinkertaisesti sanottuna REST mรครคrittelee standardoidun tavan luoda, lukea, pรคivittรครค ja poistaa resursseja, kuten dokumentteja, kuvia tai tietokantatietueita, verkossa. Koska se perustuu pelkkรครคn HTTP:hen, lรคhes mikรค tahansa ohjelmointikieli tai laite voi kรคyttรครค RESTful-palvelua ilman erityisiรค tyรถkaluja.

Miksi kรคyttรครค Restful-verkkopalveluita?

Ennen teknisten yksityiskohtien tutkimista on hyรถdyllistรค ymmรคrtรครค, miksi RESTistรค tuli niin suosittu. RESTful-verkkopalvelut nousivat kuuluisuuteen seuraavista syistรค:

1. Heterogeeniset kielet ja ympรคristรถt โ€“ Tรคmรค on yksi perustavanlaatuisista syistรค, ja se on sama kuin mitรค olemme nรคhneet aiemminkin. SAIPPUA samoin.

  • Se mahdollistaa eri ohjelmointikielillรค rakennettujen verkkosovellusten kommunikoinnin keskenรครคn.
  • Restful-palveluiden avulla nรคmรค verkkosovellukset voivat sijaita erilaisissa ympรคristรถissรค; jotkut voivat olla pรครคllรค Windows, ja muut voivat olla Linuxissa.

Loppujen lopuksi, ympรคristรถstรค riippumatta, tuloksen tulisi aina olla sama: sovellusten tulisi pystyรค kommunikoimaan keskenรครคn. Restful-verkkopalvelut tarjoavat tรคtรค joustavuutta eri ohjelmointikielille ja alustoille rakennetuille sovelluksille.

Alla oleva kuva antaa esimerkin verkkosovelluksesta, jonka on oltava yhteydessรค muihin sovelluksiin, kuten Facebookiin, Twitteriin ja... Google.

Jos asiakassovelluksen pitรคisi toimia Facebookin ja Twitterin kaltaisten sivustojen kanssa, kehittรคjien pitรคisi yleensรค tietรครค, millรค kielellรค ja alustalla kyseiset sivustot on rakennettu. Tรคmรคn perusteella he voisivat kirjoittaa rajapintakoodin, mutta tรคmรคn lรคhestymistavan yllรคpitรคminen voisi osoittautua painajaiseksi.

Sen sijaan Facebook, Twitter ja Google paljastavat niiden toiminnallisuuden Restful-verkkopalveluiden muodossa. Tรคmรค sallii minkรค tahansa asiakassovelluksen kutsua nรคitรค verkkopalveluita REST-yhteyden kautta riippumatta taustalla olevasta teknologiasta.

Miksi kรคyttรครค Restful-verkkopalveluita

2. Laitteiden tapahtuma โ€“ Nykyรครคn kaiken on toimittava Puhelinnumero laitteita, olipa kyseessรค sitten matkapuhelin, kannettava tietokone tai jopa auton jรคrjestelmรค.

Kuvittele, kuinka paljon vaivaa vaaditaan sovellusten koodaamiseen nรคillรค laitteilla, jotta ne kommunikoivat tavallisten verkkosovellusten kanssa. Jรคlleen kerran Restful-APIt yksinkertaistavat tรคtรค tyรถtรค, koska, kuten ensimmรคisessรค kohdassa mainittiin, sinun ei oikeastaan โ€‹โ€‹tarvitse tietรครค laitteen taustalla olevaa tasoa.

3. Pilvitapahtuma โ€“ Kaikki siirtyy pilveen. Sovellukset siirtyvรคt hitaasti pilvipohjaisiin jรคrjestelmiin, kuten Azure or Amazon. Azure ja Amazon tarjoavat monia Restful-arkkitehtuuriin perustuvia API-rajapintoja. Siksi sovellukset on nyt kehitettรคvรค siten, ettรค ne ovat yhteensopivia pilven kanssa. Koska kaikki pilvipohjaiset arkkitehtuurit toimivat REST-periaatteella, on jรคrkevรครค ohjelmoida verkkopalvelut REST-pohjaiselle arkkitehtuurille, jotta pilvipalveluita voidaan hyรถdyntรครค parhaalla mahdollisella tavalla.

RESTful Key Elements

REST-verkkopalvelut ovat kehittyneet paljon perustamisestaan โ€‹โ€‹lรคhtien. Vuonna 2002 Web-konsortio julkaisi WSDL- ja SOAP-verkkopalveluiden mรครคritelmรคn. Tรคmรค muodosti standardin verkkopalveluiden toteutukselle.

Vuonna 2004 verkkokonsortio julkaisi myรถs RESTful-nimisen lisรคstandardin mรครคritelmรคn. Viime vuosina tรคstรค standardista on tullut melko suosittu, ja sitรค kรคyttรคvรคt nyt monet maailman suosituimmista verkkosivustoista, kuten Facebook ja Twitter.

REST on tapa kรคyttรครค tietyssรค ympรคristรถssรค sijaitsevia resursseja. Sinulla voi esimerkiksi olla palvelin, joka isรคnnรถi tรคrkeitรค asiakirjoja, kuvia tai videoita. Kaikki nรคmรค ovat esimerkkejรค resursseista. Jos asiakas, kuten verkkoselain, tarvitsee jotakin nรคistรค resursseista, sen on lรคhetettรคvรค pyyntรถ palvelimelle. REST-palvelut mรครคrittelevรคt vakiotavan, jolla nรคihin resursseihin voidaan pรครคstรค kรคsiksi.

RESTful-toteutuksen avainelementit ovat seuraavat:

  1. Esittelymateriaalit โ€“ Ensimmรคinen keskeinen elementti on itse resurssi. Oletetaan, ettรค palvelimella olevassa verkkosovelluksessa on useiden tyรถntekijรถiden tiedot. Oletetaan, ettรค URL verkkosovelluksesta on https://demo.guru99.comJotta tyรถntekijรคtietoresurssiin pรครคstรครคn kรคsiksi REST-palveluiden kautta, voidaan antaa komento https://demo.guru99.com/employee/1Tรคmรค komento kรคskee web-palvelinta antamaan tiedot tyรถntekijรคstรค, jonka tyรถntekijรคnumero on 1.
  2. Pyydรค verbejรค โ€“ Nรคmรค kuvaavat, mitรค haluat tehdรค resurssilla. Selain antaa GET-verbin ohjeistaakseen pรครคtepistettรค hakemaan dataa. Kรคytettรคvissรค on kuitenkin monia muita verbejรค, kuten POST, PUT ja DELETE. Joten esimerkin tapauksessa https://demo.guru99.com/employee/1, verkkoselain itse asiassa antaa GET-verbin, koska se haluaa saada tyรถntekijรคtietueen tiedot.
  3. Pyydรค otsikot โ€“ Nรคmรค ovat pyynnรถn mukana lรคhetettyjรค lisรคohjeita. Ne voivat mรครคrittรครค vaadittavan vastauksen tyypin tai valtuutustiedot.
  4. Pyynnรถn elin โ€“ Tรคmรค on pyynnรถn mukana lรคhetettรคvรค data. Data lรคhetetรครคn normaalisti pyynnรถn rungossa, kun REST-verkkopalvelulle tehdรครคn POST-pyyntรถ. POST-kutsussa asiakas kertoo REST-verkkopalvelulle haluavansa lisรคtรค resurssin palvelimelle. Nรคin ollen pyynnรถn rungossa olisi tiedot lisรคttรคvรคstรค resurssista.
  5. Response Body โ€“ Tรคmรค on vastauksen pรครคosa. Jos siis RESTful API -esimerkissรคmme kyselisimme web-palvelinta pyynnรถn kautta https://demo.guru99.com/employee/1, web-palvelin saattaa palauttaa XML-dokumentin, joka sisรคltรครค kaikki tyรถntekijรคn tiedot vastauksen rungossa.
  6. Vastauksen tilakoodit โ€“ Nรคmรค ovat yleisiรค koodeja, jotka palautetaan web-palvelimen vastauksen mukana. Esimerkki on koodi 200, joka palautetaan normaalisti, kun asiakkaalle palautettaessa vastausta ei ole virhettรค.

Rauhoittavat menetelmรคt

Alla oleva kaavio nรคyttรครค useimmat verbit (POST, GET, PUT ja DELETE) ja REST API -esimerkin siitรค, mitรค ne tarkoittaisivat.

Oletetaan, ettรค meillรค on RESTful-verkkopalvelu mรครคriteltynรค sijainnissa https://demo.guru99.com/employeeKun asiakas tekee pyynnรถn tรคlle verkkopalvelulle, se voi mรครคrittรครค minkรค tahansa normaaleista HTTP-verbeistรค: GET, POST, DELETE ja PUT. Alla on kuvattu, mitรค tapahtuisi, jos asiakas lรคhettรคisi kyseiset verbit.

  1. POST โ€“ Tรคtรค kรคytettรคisiin uuden tyรถntekijรคn luomiseen RESTful-verkkopalvelun avulla.
  2. SAA โ€“ Tรคtรค kรคytettรคisiin kaikkien RESTful-verkkopalvelua kรคyttรคvien tyรถntekijรถiden luettelon hankkimiseen.
  3. PUT โ€“ Tรคtรค kรคytettรคisiin kaikkien RESTful-verkkopalvelua kรคyttรคvien tyรถntekijรถiden tietojen pรคivittรคmiseen.
  4. POISTA โ€“ Tรคtรค kรคytettรคisiin kaikkien RESTful-palvelua kรคyttรคvien tyรถntekijรถiden poistamiseen.

Tarkastellaan nyt asiaa yhden tietueen nรคkรถkulmasta. Oletetaan, ettรค tyรถntekijรคtietueella on tyรถntekijรคnumero 1. Seuraavilla toimilla olisi omat merkityksensรค.

  1. POST โ€“ Tรคmรค ei olisi sovellettavissa, koska haemme tyรถntekijรคn 1 tietoja, jotka on jo luotu.
  2. SAA โ€“ Tรคtรค kรคytettรคisiin tyรถntekijรคnumeron 1 tietojen hakemiseen RESTful-verkkopalvelun avulla.
  3. PUT โ€“ Tรคtรค kรคytettรคisiin tyรถntekijรคnumerolla 1 varustetun tyรถntekijรคn tietojen pรคivittรคmiseen RESTful-verkkopalvelun avulla.
  4. POISTA โ€“ Tรคtรค kรคytetรครคn tyรถntekijรคnumeron 1 omaavan tyรถntekijรคn tietojen poistamiseen.

Rauhoittavat menetelmรคt

Rauhallinen Archirakenne

RESTful- tai REST-tyyliseksi katsottavalla sovelluksella tai arkkitehtuurilla on seuraavat ominaisuudet.

1. Tila ja toiminnallisuus on jaettu hajautettuihin resursseihin โ€“ Tรคmรค tarkoittaa, ettรค jokaiseen resurssiin tulisi olla pรครคsy normaaleilla HTTP-komennoilla GET, POST, PUT tai DELETE. Jos joku haluaa noutaa tiedoston palvelimelta, hรคnen tulisi pystyรค tekemรครคn GET-pyyntรถ ja noutamaan tiedosto. Jos he haluavat tallentaa tiedoston palvelimelle, heidรคn tulisi pystyรค tekemรครคn joko POST- tai PUT-pyyntรถ. Lopuksi, jos he haluavat poistaa tiedoston palvelimelta, he voivat tehdรค DELETE-pyynnรถn.

2. Arkkitehtuuri on asiakas/palvelin-pohjainen, tilaton, kerrostettu ja tukee vรคlimuistia.

  • Client-server on tyypillinen arkkitehtuuri, jossa palvelin voi olla sovellusta isรคnnรถivรค web-palvelin ja asiakas voi olla yhtรค yksinkertainen kuin verkkoselain.
  • Tilaton tarkoittaa, ettรค sovelluksen tilaa ei yllรคpidetรค REST:ssรค. Jos esimerkiksi poistat resurssin palvelimelta DELETE-komennolla, et voi odottaa, ettรค poistotiedot vรคlitetรครคn seuraavaan pyyntรถรถn.

Resurssin poistamisen varmistamiseksi sinun on lรคhetettรคvรค GET-pyyntรถ. GET-pyyntรถรค kรคytetรครคn ensin kaikkien palvelimella olevien resurssien hakemiseen, minkรค jรคlkeen on tarkistettava, onko resurssi todella poistettu.

RESTFul periaatteet ja rajoitukset

REST-arkkitehtuuri perustuu muutamiin ominaisuuksiin, joita kรคsitellรครคn tarkemmin alla. Minkรค tahansa RESTful-verkkopalvelun on tรคytettรคvรค alla olevat ominaisuudet, jotta sitรค voidaan kutsua RESTfuliksi. Nรคitรค ominaisuuksia kutsutaan myรถs suunnitteluperiaatteiksi, joita on noudatettava tyรถskenneltรคessรค RESTful-pohjaisten palveluiden kanssa.

  1. RESTFul Client-Server

    RESTFul-asiakas-palvelinperiaate

Tรคmรค on REST-pohjaisen arkkitehtuurin perustavanlaatuisin vaatimus. Se tarkoittaa, ettรค palvelimella on RESTful-verkkopalvelu, joka tarjoaa asiakkaalle tarvittavat toiminnot. Asiakas lรคhettรครค pyynnรถn palvelimella olevalle verkkopalvelulle. Palvelin joko hylkรครค pyynnรถn tai suostuu siihen ja antaa asiakkaalle riittรคvรคn vastauksen.

  1. kansalaisuudeton

Tilattoman kรคsite tarkoittaa, ettรค asiakkaan on varmistettava, ettรค palvelimelle toimitetaan kaikki tarvittavat tiedot. Tรคmรค on vรคlttรคmรคtรถntรค, jotta palvelin voi kรคsitellรค vastauksen asianmukaisesti. Palvelimen ei tule sรคilyttรครค minkรครคnlaisia โ€‹โ€‹tietoja asiakkaan pyyntรถjen vรคlillรค. Se on hyvin yksinkertainen, itsenรคinen kysymys-vastaus-sekvenssi. Asiakas esittรครค kysymyksen, ja palvelin vastaa siihen asianmukaisesti. Kun asiakas esittรครค toisen kysymyksen, palvelin ei muista edellistรค kysymys-vastaus-skenaariota ja sen on vastattava uuteen kysymykseen itsenรคisesti.

  1. Kรคtkรถ

RESTFul-vรคlimuistiperiaate

Vรคlimuistikonsepti auttaa edellisessรค kohdassa kuvatun tilattomuuden ongelman ratkaisemisessa. Koska jokainen palvelin-asiakaspyyntรถ on luonteeltaan itsenรคinen, asiakas saattaa joskus pyytรครค palvelimelta samaa pyyntรถรค uudelleen, vaikka se olisi jo pyytรคnyt sitรค aiemmin. Tรคmรค pyyntรถ menee palvelimelle, ja palvelin antaa vastauksen, mikรค lisรครค verkkoliikennettรค. Vรคlimuisti on asiakkaalla toteutettu konsepti, joka tallentaa palvelimelle jo lรคhetetyt pyynnรถt. Joten jos asiakas tekee saman pyynnรถn, se ei mene palvelimelle, vaan vรคlimuistiin ja hakee tarvittavat tiedot. Tรคmรค sรครคstรครค edestakaisen verkkoliikenteen asiakkaan ja palvelimen vรคlillรค.

  1. Kerrostettu jรคrjestelmรค

Kerrosjรคrjestelmรคn kรคsite on, ettรค asiakkaan ja RESTFul-verkkopalvelua isรคnnรถivรคn varsinaisen palvelimen vรคliin voidaan lisรคtรค mikรค tahansa lisรคkerros, kuten vรคliohjelmistokerros. (Vรคliohjelmistokerros on se, missรค kaikki liiketoimintalogiikka luodaan. Tรคmรค voi olla ylimรครคrรคinen palvelu, jonka kanssa asiakas on vuorovaikutuksessa ennen kuin se soittaa verkkopalveluun.) Mutta tรคmรคn kerroksen kรคyttรถรถnoton on oltava lรคpinรคkyvรครค, jotta se ei hรคiritse asiakkaan ja palvelimen vรคlistรค vuorovaikutusta.

  1. Kรคyttรถliittymรค/yhtenรคinen liitรคntรคtract

Tรคmรค on RESTful-verkkopalveluiden toiminnan perusta. RESTful toimii pohjimmiltaan HTTP-verkkotasolla ja kรคyttรครค alla olevia avainsanoja palvelimen resurssien kanssa tyรถskentelyyn.

  • POST โ€“ Resurssin luominen palvelimelle.
  • GET โ€“ Hakee resurssin palvelimelta.
  • PUT โ€“ Resurssin tilan muuttaminen tai sen pรคivittรคminen.
  • POISTA โ€“ Resurssin poistaminen palvelimelta.

REST vs. SOAP: Keskeiset erot

Kehittรคjรคt usein vertailevat RESTiรค SOAPiin suunnitellessaan verkkopalvelua. Molemmat mahdollistavat hajautettujen sovellusten kommunikoinnin, mutta ne eroavat jyrkรคsti toisistaan โ€‹โ€‹filosofiansa osalta. REST on arkkitehtuurityyli, joka kรคyttรครค yksinkertaisia โ€‹โ€‹HTTP-verbejรค ja kevyitรค formaatteja, kuten JSON, kun taas SAIPPUA on tiukka protokolla, joka perustuu XML-kirjekuoriin ja muodolliseen con-koodiin.tract. Alla oleva taulukko esittรครค yhteenvedon tรคrkeimmistรค eroista.

Aspect REST SAIPPUA
Tyyppi Architekstuurinen tyyli Tiukka protokolla
Tietomuoto JSON, XML, pelkkรค teksti, HTML Vain XML
liikenne Vain HTTP HTTP, SMTP, TCP ja muut
Osavaltio kansalaisuudeton Valtiottomat tai valtiolliset
Suorituskyky Nopeampi ja kevyempi Raskaampi XML-yleiskuorman vuoksi
Parasta Verkko-, mobiili- ja julkiset API:t Yrityssovellukset, jotka vaativat tiukkaa suojausta

Kรคytรคnnรถssรค REST on oletusvalinta julkisille verkko- ja mobiilisovellusliittymille, koska se on nopeampi ja helpompi kรคyttรครค, kun taas SOAP on edelleen hyรถdyllinen yritysjรคrjestelmille, jotka vaativat sisรครคnrakennettua tietoturvaa ja muodollista valvontaa.tracts.

Luo ensimmรคinen Restful-verkkopalvelusi ASP.NETissรค

Tรคssรค REST API -opetusohjelmassa opimme nyt luomaan Restful-verkkopalvelun ASP.NETissรค.

Verkkopalveluita voidaan luoda useilla eri kielillรค, ja REST-pohjaisten palveluiden luomiseen voidaan kรคyttรครค monia integroituja kehitysympรคristรถjรค.

Tรคssรค RESTful API -esimerkissรค luomme REST-sovelluksemme .NETissรค Visual Studiota kรคyttรคen. Meillรค tulee olemaan Restful-verkkopalvelu, joka toimii alla olevan datajoukon parissa.

Alla oleva datajoukko edustaa REST API -esimerkkiรค yrityksestรค, joka paljastaa tutoriaalinsa Tutorialid:n perusteella.

Tutorialid TutorialName
0 taulukot
1 jonot
2 Stacks

REST API -opetusohjelman esimerkissรค toteutamme alla olevat Restful-verbit.

  1. HANKI opetusohjelma โ€“ Kun asiakas kรคynnistรครค tรคmรคn Restful-rajapinnan, hรคn saa kรคyttรถรถnsรค kaikki verkkopalvelusta saatavilla olevat tutoriaalit.
  2. GET Tutorial/Tutorialid โ€“ Kun asiakas kรคynnistรครค tรคmรคn Restful-rajapinnan, hรคnelle annetaan tutoriaalin nimi asiakkaan lรคhettรคmรคn Tutorialid:n perusteella.
  3. POST-opetusohjelma/opetusohjelman nimi โ€“ Kun asiakas kรคynnistรครค tรคmรคn Restful-rajapinnan, se lรคhettรครค pyynnรถn opetusohjelman nimen lisรครคmiseksi. Verkkopalvelu lisรครค sitten lรคhetetyn opetusohjelman nimen kokoelmaan.
  4. POISTA Opastus/Tutorialid โ€“ Kun asiakas kรคynnistรครค tรคmรคn Restful-rajapinnan, se lรคhettรครค pyynnรถn Tutorialname-nimen poistamiseksi Tutorialid-arvon perusteella. Verkkopalvelu poistaa sitten lรคhetetyn tutoriaalin nimen kokoelmasta.

Noudatetaan alla olevia ohjeita luodaksemme ensimmรคisen RESTful-verkkopalvelumme, joka suorittaa yllรค olevan toteutuksen.

Kuinka luoda ensimmรคinen rauhallinen verkkopalvelu

Vaihe 1) Luo uusi projekti.
Ensimmรคinen askel on luoda tyhjรค Asp.Net verkkosovellus. Napsauta Visual Studio 2013:ssa valikkovaihtoehtoa Tiedosto->Uusi projekti.

Luo rauhallinen verkkopalvelu

Kun napsautat Uusi projekti -vaihtoehtoa, Visual Studio nรคyttรครค sinulle toisen valintaikkunan projektityypin valitsemiseksi ja tarvittavien tietojen syรถttรคmiseksi. Tรคmรค selitetรครคn seuraavassa vaiheessa.

Vaihe 2) Syรถtรค projektin nimi ja sijainti.

  1. Varmista, ettรค valitset ensin C# ASP.NET-verkkosovelluksen verkkomalli. Projektin on oltava tรคtรค tyyppiรค, jotta verkkopalveluprojekti voidaan luoda. Valitsemalla tรคmรคn vaihtoehdon Visual Studio suorittaa tarvittavat vaiheet tarvittavien tiedostojen lisรครคmiseksi mille tahansa verkkopohjaiselle sovellukselle.
  2. Anna projektille nimi, joka meidรคn tapauksessamme on โ€Webservice.RESTโ€.
  3. Varmista sitten, ettรค annat sijainnin, johon projektitiedostot tallennetaan.

Luo rauhallinen verkkopalvelu

Kun olet valmis, nรคet luodun projektitiedoston Visual Studio 2013:n ratkaisunhallinnassa.

Luo rauhallinen verkkopalvelu

Vaihe 3) Luo verkkopalvelutiedosto.
Seuraava vaihe on luoda web-palvelutiedosto, joka tulee sisรคltรคmรครคn RESTful-web-palvelun.

  1. Napsauta ensin hiiren kakkospainikkeella projektitiedostoa alla olevan kuvan mukaisesti.

Luo rauhallinen verkkopalvelu

  1. Tรคssรค vaiheessa
    1. Napsauta projektitiedostoa hiiren kakkospainikkeella.
    2. Valitse vaihtoehto โ€Lisรครค -> Uusi kohdeโ€.

Luo rauhallinen verkkopalvelu

Nรคyttรถรถn tulevassa valintaikkunassa sinun on suoritettava seuraavat toimet.

  1. Valitse vaihtoehto WCF-palvelu (Ajax-yhteensopiva). Tรคmรคn tyyppisen tiedoston valitseminen saa Visual Studion lisรครคmรครคn peruskoodia, jonka avulla voit luoda RESTful-verkkopalvelun. WCF on lyhenne sanoista Windows Viestintรค FoundationWCF on kirjasto eri alustojen (tai saman alustan) sovelluksille kommunikointiin eri protokollien, kuten TCP:n, HTTP:n ja HTTPS:n, kautta. Ajax on asynkroninen. JavaKรคsikirjoitus ja XML. AJAX mahdollistaa verkkosivujen pรคivityksen asynkronisesti vaihtamalla pieniรค mรครคriรค tietoa kulissien takana olevan palvelimen kanssa.
  2. Seuraavaksi anna palvelulle nimi, joka meidรคn tapauksessamme on TutorialService.
  3. Napsauta lopuksi Lisรครค-painiketta lisรคtรคksesi palvelun ratkaisuun.

Luo rauhallinen verkkopalvelu

Vaihe 4) Tee konfiguraatio.
Seuraava vaihe on tehdรค kokoonpanomuutos, jotta tรคmรค projekti voi toimia RESTful-verkkopalveluiden kanssa. Tรคmรค edellyttรครค muutosta tiedostoon nimeltรค Web.configTรคmรค tiedosto nรคkyy samassa ikkunassa kuin Webservice-projektitiedosto. Web.config-tiedosto sisรคltรครค kaikki mรครคritykset, jotka saavat web-sovelluksen toimimaan normaalisti. Tehtรคvรค muutos sallii sovelluksen lรคhettรครค ja vastaanottaa tietoja puhtaana RESTful-web-palveluna.

  1. Avaa koodi napsauttamalla Web.config-tiedostoa.

Luo rauhallinen verkkopalvelu

  1. Etsi linja .

Luo rauhallinen verkkopalvelu

  1. Muuta riviรค muotoon .

Luo rauhallinen verkkopalvelu

Vaihe 5) Lisรครค koodimme kรคyttรถรถnottoa varten.
Seuraava vaihe on koodin lisรครคminen toteutusta varten. Kaikki alla oleva koodi on kirjoitettava TutorialService.svc-tiedostoon.

  1. Ensimmรคinen vaihe on lisรคtรค koodia, joka edustaa ohjelmassamme kรคytettรคvรครค dataa. Meillรค on siis lista merkkijonomuuttujia, joiden arvot ovat "Arrays", "Queues" ja "Stacks". Tรคmรค edustaa webhotellipalvelumme kautta saatavilla olevien tutoriaalien nimiรค.

Luo rauhallinen verkkopalvelu

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"});

Vaihe 6) Mรครคritรค koodi GET-menetelmรคllemme.
Seuraavaksi mรครคrittelemme GET-metodin koodin. Tรคmรค koodi sijaitsee myรถs samassa TutorialService.svc-tiedostossa. Tรคmรค koodi suoritetaan aina, kun kutsumme palvelua selaimestamme.

Alla olevaa menetelmรครค kรคytetรครคn alla olevan skenaarion tรคyttรคmiseen.

  • Jos kรคyttรคjรค haluaa listan kaikista saatavilla olevista tutoriaaleista, hรคnen on kirjoitettava alla oleva koodi tรคmรคn saavuttamiseksi.

Luo rauhallinen verkkopalvelu

[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 Selitys:-

  1. Ensimmรคinen koodirivi on tรคrkein. Sitรค kรคytetรครคn mรครคrittelemรครคn, miten voimme kutsua tรคtรค metodia a:n kautta. URLJoten jos linkki verkkopalveluumme on http://localhost:52645/TutorialService.svc ja lisรครคmme '/Tutorial'-sanan URL, kuten http://localhost:52645/TutorialService.svc/Tutorial, yllรค oleva koodi kutsutaan. 'WebGet'-attribuutti on parametri, joka sallii tรคmรคn metodin olla RESTful-metodi, jotta sitรค voidaan kutsua GET-verbin kautta.
  2. Tรคtรค koodin osaa kรคytetรครคn kรคymรครคn lรคpi lst-muuttujan merkkijonoluettelomme ja palauttamaan ne kaikki kutsuvaan ohjelmaan.

Vaihe 7) Palauta tulos.
Alla oleva koodi varmistaa, ettรค jos Tutorial-palveluun tehdรครคn GET-kutsu Tutorial-tunnuksella, se palauttaa vastaavan tutoriaalin nimen Tutorial-tunnuksen perusteella.

Luo rauhallinen verkkopalvelu

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

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

Code Selitys:-

  1. Ensimmรคinen koodirivi on tรคrkein. Se mรครคrittelee, kuinka voimme kutsua tรคtรค metodia a:n kautta. URLJoten jos linkki verkkopalveluumme on http://localhost:52645/TutorialService.svc ja lisรครคmme '/Tutorial/{Tutorialid}'-kohdan loppuun URL, voisimme kutsua verkkopalvelua seuraavasti http://localhost:52645/TutorialService.svc/Tutorial/1esimerkiksi. Verkkopalvelu palauttaisi sitten opetusohjelman nimen, jonka opetusohjelman tunnus on 1.
  2. Tรคtรค koodin osaa kรคytetรครคn palauttamaan opetusohjelman nimi, jolla on web-metodille vรคlitetty opetusohjelman tunniste.
  • Oletusarvoisesti on muistettava, ettรค kaikki, mikรค vรคlitetรครคn URL selaimessa on merkkijono.
  • Mutta sinun on muistettava, ettรค listamme indeksin on oltava kokonaisluku, joten lisรครคmme tarvittavan koodin muuntaaksemme ensin Tutorialid:n kokonaisluvuksi.
  • Sitten kรคytรคmme sitรค listamme indeksisijainnin kรคyttรคmiseen ja palautamme arvon kutsuvalle ohjelmalle vastaavasti.

Vaihe 8) Kirjoita POST-metodin koodi.
Seuraava vaihe on kirjoittaa koodi POST-metodia varten. Tรคtรค metodia kutsutaan aina, kun haluamme lisรคtรค merkkijonoarvon tutoriaalien luetteloon POST-metodin avulla. Jos esimerkiksi haluat lisรคtรค tutoriaalin nimen "Ohjelmistotestaus", sinun on kรคytettรคvรค POST-metodia.

Luo rauhallinen verkkopalvelu

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

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

Code Selitys:-

  1. Ensimmรคinen rivi on 'WebInvoke'-attribuutti, joka on liitetty metodiimme. Tรคmรค mahdollistaa metodin kutsumisen POST-kutsun kautta. RequestFormat- ja ResponseFormat-attribuutit on mainittava JSON-muodossa, koska RESTFul-verkkopalveluun lรคhetettรคvien arvojen on oltava tรคssรค muodossa.
  2. Toista koodiriviรค kรคytetรครคn POST-kutsussa vรคlitetyn merkkijonon arvon lisรครคmiseen olemassa olevaan tutoriaalimerkkijonojen luetteloon.

Vaihe 9) Lisรครค metodi DELETE-toiminnon kรคsittelemiseksi.
Lopuksi lisรครคmme metodin DELETE-operaation kรคsittelemiseksi. Tรคtรค metodia kutsutaan aina, kun haluamme poistaa olemassa olevan merkkijonoarvon tutoriaaliluettelostamme DELETE-metodin avulla.

Luo rauhallinen verkkopalvelu

[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 Selitys:-

  1. Ensimmรคinen rivi on 'WebInvoke'-attribuutti, joka on liitetty metodiimme. Tรคmรค mahdollistaa metodin kutsumisen DELETE-kutsulla. RequestFormat- ja ResponseFormat-attribuutit on mainittava JSON-muodossa, koska arvojen on oltava tรคssรค muodossa. Huomaa, ettรค Method-parametri asetetaan arvoon โ€DELETEโ€. Tรคmรค tarkoittaa, ettรค aina kun annamme DELETE-verbin, tรคtรค metodia kutsutaan.
  2. Toisella koodirivillรค otetaan DELETE-kutsun kautta lรคhetetty Tutorialid ja sen jรคlkeen poistetaan tรคmรค tunnus luettelostamme. ( Int32 koodin funktiota kรคytetรครคn muuntaakseen Tutorial-tunnuksen merkkijono-muuttujasta kokonaisluvuksi.)

Ensimmรคisen Restful-verkkopalvelusi kรคyttรคminen

Nyt kun olemme luoneet koko verkkopalvelumme yllรค olevassa osiossa, katsotaanpa, miten voimme suorittaa Tutorial-palvelun niin, ettรค sitรค voidaan kutsua mistรค tahansa asiakasohjelmasta.

Suorittaaksesi verkkopalvelun, noudata alla olevia ohjeita.

Vaihe 1) Napsauta hiiren kakkospainikkeella projektitiedostoa โ€“ Webservice.REST.

Rentouttava verkkopalvelu kรคytรถssรค

Vaihe 2) Valitse valikkovaihtoehto 'Aseta kรคynnistysprojektiksi'. Tรคmรค varmistaa, ettรค tรคmรค projekti suoritetaan, kun Visual Studio suorittaa koko ratkaisun.

Rentouttava verkkopalvelu kรคytรถssรค

Vaihe 3) Seuraava vaihe on itse projektin suorittaminen. Jรคrjestelmรครคn asennetusta oletusselaimesta riippuen sopivan selaimen nimi nรคkyy Visual Studion suorituspainikkeen vieressรค. Meidรคn tapauksessamme meillรค on Google Chrome ilmestyy. Napsauta vain tรคtรค painiketta.

Rentouttava verkkopalvelu kรคytรถssรค

Lรคhtรถ: -

Kun projekti on suoritettu, voit selata TutorialService.svc/Tutorial-osioon ja saada alla olevan tulosteen.

Rentouttava verkkopalvelu kรคytรถssรค

Yllรค olevassa tulosteessa

  • Nรคet, ettรค selain kutsuu 'GET'-verbiรค ja suorittaa 'GetAllTutorial'-metodia verkkopalvelussa. Tรคtรค moduulia kรคytetรครคn kaikkien verkkopalvelumme tarjoamien opetusohjelmien nรคyttรคmiseen.

Testataan ensimmรคistรค Restful-verkkopalveluasi

Yllรค olevassa osiossa olemme jo nรคhneet, miten selainta kรคytetรครคn 'GET'-verbin suorittamiseen ja 'GetAllTutorial'-funktion kutsumiseen.

  1. Suoritetaan nyt seuraava kรคyttรถtapausskenaario selaimella.

GET Tutorial/Tutorialid โ€“ Kun asiakas kutsuu tรคtรค Restful-rajapintaa, hรคnelle annetaan tutoriaalin nimi asiakkaan lรคhettรคmรคn Tutorialid:n perusteella.

Lisรครค selaimessasi merkkijono /1 Tutorial-sanan perรครคn URLJos painat Enter-painiketta, saat alla olevan tulosteen.

Testataan rauhallista verkkopalvelua

Nรคet nyt tuloksena olevan โ€Queuesโ€-metodin, joka vastaa numeroa 1 tutoriaalimerkkijonojen luettelossamme. Tรคmรค tarkoittaa, ettรค verkkopalvelumme kutsuu nyt 'GetTutorialbyID'-metodia. Se osoittaa myรถs, ettรค arvo 1 vรคlitetรครคn onnistuneesti selaimen kautta verkkopalveluumme ja metodiimme, ja siksi saamme selaimessa oikean vastaavan arvon โ€Queuesโ€-metodille.

  1. Seuraavaksi kรคytetรครคn verkkopalveluamme suorittamalla alla oleva skenaario. Tรคtรค varten sinun on asennettava tyรถkalu nimeltรค Fiddler, joka on ilmainen ladattava tyรถkalu.

POST Tutorial/Tutorialname โ€“ Kun asiakas kutsuu tรคtรค Restful-rajapintaa, se lรคhettรครค pyynnรถn Tutorialname-nimen lisรครคmiseksi. Verkkopalvelu lisรครค sitten lรคhetetyn tutoriaalin nimen kokoelmaan.

Suorita Fiddler tyรถkalu ja suorita alla olevat vaiheet.

  1. Siirry kirjoitusosioon. Tรคtรค kรคytetรครคn pyyntรถjen luomiseen, jotka voidaan lรคhettรครค mihin tahansa verkkosovellukseen.
  2. Varmista, ettรค pyynnรถn tyyppi on โ€POSTโ€ ja ettรค se on oikein. URL on iskun kohteena, mikรค meidรคn tapauksessamme pitรคisi olla http://localhost:52645/TutorialService.svc/Tutorial.
  3. Varmista, ettรค Content-Type on merkitty application/json. Muista, ettรค verkkopalvelumme POST-pyyntรถmetodi hyvรคksyy vain JSON-tyylistรค dataa, joten meidรคn on varmistettava, ettรค tรคmรค mรครคritetรครคn, kun lรคhetรคmme pyynnรถn sovelluksellemme.
  4. Lopuksi meidรคn on syรถtettรคvรค tietomme. Muista, ettรค POST-metodimme hyvรคksyy parametrin nimeltรค 'str'. Tรคssรค siis mรครคritรคmme, ettรค haluamme lisรคtรค arvon nimeltรค "Puut" tutoriaalien nimien kokoelmaamme ja varmistaa, ettรค se on tagattu 'str'-muuttujanimellรค.

Lopuksi napsauta vain Suorita-painiketta kohdassa FiddlerTรคmรค lรคhettรครค verkkopalvelulle pyynnรถn lรคhettรครค "Puut"-data verkkopalveluumme.

Testataan rauhallista verkkopalvelua

Kun nyt selaamme Tutoriaalia URL Jos haluat nรคyttรครค kaikki tutoriaalilistamme merkkijonot, huomaat, ettรค myรถs "Trees"-arvo on lรคsnรค. Tรคmรค osoittaa, ettรค verkkopalvelulle lรคhetetty POST-pyyntรถ suoritettiin onnistuneesti ja ettรค se lisรคttiin onnistuneesti tutoriaalilistaamme.

Testataan rauhallista verkkopalvelua

  1. Seuraavaksi kรคytetรครคn verkkopalveluamme suorittamalla alla oleva skenaario. Tรคtรค varten meidรคn on kรคytettรคvรค myรถs Fiddler tyรถkalu.

POISTA Tutorial/Tutorialid โ€“ Kun asiakas kรคynnistรครค tรคmรคn Restful-rajapinnan, se lรคhettรครค pyynnรถn Tutorialid:hen perustuvan Tutorialname-nimen poistamiseksi. Verkkopalvelu poistaa sitten lรคhetetyn tutoriaalin nimen kokoelmasta.

Suorita Fiddler tyรถkalu ja suorita alla olevat vaiheet.

  1. Siirry kirjoitusosioon. Tรคtรค kรคytetรครคn pyyntรถjen luomiseen, jotka voidaan lรคhettรครค mihin tahansa verkkosovellukseen.
  2. Varmista, ettรค pyynnรถn tyyppi on โ€POISTAโ€ ja ettรค se on oikein. URL on iskun kohteena, mikรค meidรคn tapauksessamme pitรคisi olla http://localhost:52645/TutorialService.svc/TutorialVarmista, ettรค merkkijonon poistamiseen luettelosta kรคytetty tunnus lรคhetetรครคn . URL parametrina. REST-esimerkissรคmme lรคhetรคmme arvon 1, joten tรคmรค poistaa arvon 2nd kokoelmamme elementti, joka on โ€Jonotโ€.

Lopuksi napsauta vain Suorita-painiketta kohdassa FiddlerTรคmรค lรคhettรครค verkkopalvelulle pyynnรถn POISTAA datajonot verkkopalvelustamme.

Testataan rauhallista verkkopalvelua

Kun nyt selaamme Tutoriaalia URL Jos haluat nรคyttรครค kaikki tutoriaaliluettelomme merkkijonot, huomaat, ettรค โ€Jonotโ€-arvoa ei enรครค ole.

Tรคmรค osoittaa, ettรค verkkopalvelulle lรคhetetty DELETE-pyyntรถ suoritettiin onnistuneesti. Tutoriaalimerkkijonojen luettelossamme indeksin 1 mukainen elementti poistettiin onnistuneesti.

Testataan rauhallista verkkopalvelua

RESTful-rajapinnan parhaat kรคytรคnnรถt

Toimivan REST-rajapinnan rakentaminen on vasta ensimmรคinen askel; skaalautuvan ja yllรคpidettรคvรคn REST-rajapinnan rakentaminen vaatii kurinalaisuutta. Alla olevat kรคytรคnnรถt auttavat pitรคmรครคn pรครคtepisteesi ennustettavina, turvallisina ja helppokรคyttรถisinรค muille kehittรคjille ja tekoรคlyagenteille.

  • Kรคytรค substantiiveja, รคlรค verbejรค URLs. Pรครคtepisteet, kuten /tyรถntekijรคt/1 ovat selkeรคmpiรค kuin /getTyรถntekijรค?id=1, koska HTTP-verbi kuvaa jo toiminnon.
  • Palauta merkitykselliset tilakoodit. Lรคhetรค 200 onnistumisesta, 201 luodusta resurssista, 400 virheellisestรค pyynnรถstรค, 401 luvattomasta kรคytรถstรค, 404 puuttuvasta resurssista ja 500 palvelinvirheistรค.
  • Versioi API:si. Versiosegmentin lisรครคminen, kuten /v1/ polussa voit kehittรครค palvelua katkaisematta olemassa olevien asiakkaiden toimintaa.
  • Suojaa jokainen pรครคtepiste. Kรคytรค HTTPS:รครค yhdessรค API-avainten tai OAuth 2.0 -tokenien kanssa ja vahvista kaikki saapuva syรถte.
  • Tuki sivutukselle ja suodatukselle. Suurten kokoelmien palauttaminen sivuilla pitรครค vastaukset nopeina ja vรคhentรครค palvelimen kuormitusta.

Nรคiden kรคytรคntรถjen noudattaminen tekee RESTful-verkkopalvelustasi intuitiivisen integroitavan, olipa kyseessรค sitten mobiilisovellus, kumppanijรคrjestelmรค tai automatisoitu tekoรคlytyรถnkulku.

UKK

REST on arkkitehtuurityyli, joka kรคyttรครค HTTP-verbejรค ja kevyitรค formaatteja, kuten JSON. SOAP on tiukka protokolla, joka perustuu XML-kirjekuoriin. REST on nopeampi, yksinkertaisempi ja parempi web- ja mobiiliasiakkaille, kun taas SOAP sopii yritysjรคrjestelmiin, jotka tarvitsevat sisรครคnrakennettua tietoturvaa.

RESTful-rajapinnat palauttavat HTTP-statuskoodien standardin mukaisia โ€‹โ€‹koodeja. 200 vahvistaa onnistuneen pyynnรถn, 201 ilmaisee luodun resurssin, 400 raportoi virheellisen pyynnรถn, 401 tarkoittaa luvatonta pyyntรถรค, 404 merkitsee puuttuvan resurssin ja 500 ilmoittaa palvelinvirheestรค kรคsittelyn aikana.

Suojaa REST-rajapinnat HTTPS-protokollalla tiedonsiirron salausta varten, API-avaimet tai OAuth 2.0 -tokenit todennusta varten, roolipohjainen kรคyttรถoikeuksien hallinta valtuutusta varten, nopeusrajoitus vรครคrinkรคytรถsten estรคmiseksi ja tiukka syรถtteen validointi. Lokipyyntรถjen kirjaaminen auttaa auditoinnissa ja tapahtumiin reagoinnissa.

Tekoรคlypalveluntarjoajat, kuten OpenAI, Anthropic ja Google paljastaa REST-pรครคtepisteitรค, jotka hyvรคksyvรคt JSON-kehotteita ja palauttavat luodun tekstin. Kehittรคjรคt lรคhettรคvรคt POST-pyyntรถjรค API-avaimilla, ja palvelu vastaa mallin tulosteella, mikรค mahdollistaa chatbottien, agenttien ja automaatioputkien toiminnan.

Kyllรค. Nykyaikaiset tekoรคlyagentit kรคyttรคvรคt tyรถkalukutsuja tai funktiokutsuja REST-pรครคtepisteiden kutsumiseen keskustelun aikana. Agentti valitsee pรครคtepisteen, rakentaa JSON-hyรถtykuorman, kรคynnistรครค pyynnรถn ja lukee vastauksen suunnitellakseen seuraavan toimintonsa ilman ihmisen syรถtteitรค.

Verkkoselain voi testata GET-kutsuja suoraan. POST-, PUT- ja DELETE-pyyntรถihin kehittรคjรคt kรคyttรคvรคt tyรถkaluja, kuten Fiddler or Postman, joiden avulla voit asettaa otsikot, valita verbin ja tarkastella vastausta.

REST-palvelut vaihtavat tietoja yleisesti JSON-muodossa, koska se on kevyttรค ja helppo jรคsentรครค. Ne voivat kรคyttรครค myรถs XML:รครค, HTML:รครค tai pelkkรครค tekstiรค. Asiakas ja palvelin sopivat muodosta kรคyttรคmรคllรค Content-Type- ja Accept HTTP -otsikoita.

Tiivistรค tรคmรค viesti seuraavasti: