RESTful Web Services oktatóanyag: Mi az a REST API példával
Mi az a Restful Web Services?
Nyugodt webszolgáltatások egy könnyű, karbantartható és méretezhető szolgáltatás, amely a REST architektúrára épül. Nyugodt webszolgáltatás, tegye közzé az API-t az alkalmazásból biztonságosan, egységesen, állapotmentesen a hívó ügyfél számára. A hívó kliens előre meghatározott műveleteket hajthat végre a Restful szolgáltatás segítségével. A REST mögöttes protokoll a HTTP. A REST a reprezentatív állapottranszfer rövidítése.
RESTful Key Elements
A REST webszolgáltatások valóban hosszú utat tettek meg a kezdetek óta. 2002-ben a Web konzorcium kiadta a WSDL és a SOAP webszolgáltatások definícióját. Ez képezte a szabványt a webszolgáltatások megvalósításában.
2004-ben a webkonzorcium kiadta a RESTful nevű további szabvány definícióját is. Az elmúlt néhány évben ez a szabvány meglehetősen népszerűvé vált. A világ számos népszerű webhelye használja, köztük a Facebook és a Twitter.
A REST egy módja annak, hogy hozzáférjen egy adott környezetben lévő erőforrásokhoz. Például lehet egy szerver, amely fontos dokumentumokat, képeket vagy videókat tárolhat. Mindezek példák az erőforrásokra. Ha egy kliensnek, például egy webböngészőnek szüksége van ezekre az erőforrásokra, kérést kell küldenie a szervernek, hogy hozzáférjen ezekhez az erőforrásokhoz. Most a REST szolgáltatások meghatározzák az erőforrások elérésének módját.
A RESTful megvalósítás legfontosabb elemei a következők:
- Tudástár – Az első kulcselem maga az erőforrás. Tételezzük fel, hogy egy webalkalmazás egy szerveren több alkalmazottról is rendelkezik. Tegyük fel, hogy a webalkalmazás URL-je https://demo.guru99.com. Most, hogy hozzáférjen egy alkalmazotti rekord erőforráshoz a REST szolgáltatásokon keresztül, kiadhatja a parancsot https://demo.guru99.com/employee/1 – Ez a parancs arra utasítja a webszervert, hogy adja meg annak az alkalmazottnak az adatait, akinek az alkalmazotti száma 1.
- Igék kérése – Ezek azt írják le, hogy mit szeretne tenni az erőforrással. A böngésző egy GET igét ad ki, hogy utasítsa az adatokat lekérni kívánt végpontot. Azonban sok más ige is elérhető, például a POST, PUT és DELETE. Tehát a példa esetében https://demo.guru99.com/employee/1 , a webböngésző valójában egy GET Igét ad ki, mert meg akarja szerezni az alkalmazotti rekord részleteit.
- Kérjen fejléceket – Ezek a kéréssel együtt elküldött további utasítások. Ezek meghatározhatják a szükséges válasz típusát vagy az engedélyezés részleteit.
- Kérelem szerve – A kéréssel együtt adatot küldünk. Az adatok általában akkor kerülnek elküldésre a kérésben, amikor POST kérést küldenek a REST webszolgáltatásokhoz. A POST hívás során az ügyfél ténylegesen közli a REST webszolgáltatásokkal, hogy erőforrást kíván hozzáadni a kiszolgálóhoz. Ennélfogva a kérés törzse rendelkezik a szerverhez hozzáadandó erőforrás részleteivel.
- Választest – Ez a válasz fő része. Tehát a RESTful API példánkban, ha lekérdeznénk a webszervert a kéréssel https://demo.guru99.com/employee/1 , a webszerver visszaküldhet egy XML-dokumentumot, amely tartalmazza az alkalmazott minden adatát a választörzsben.
- Válasz állapotkódok – Ezek a kódok az általános kódok, amelyeket a webszerver válaszával együtt küldenek vissza. Példa erre a 200-as kód, amely általában akkor jelenik meg, ha nincs hiba az ügyfélnek adott válasz visszaküldésekor.
Pihentető módszerek
Az alábbi diagram többnyire az összes igét mutatja (POST, GET, PUT és DELETE), valamint egy REST API-példát, hogy mit jelentenek.
Tegyük fel, hogy egy RESTful webszolgáltatás van definiálva a helyen. https://demo.guru99.com/employee . Amikor az ügyfél bármilyen kérést intéz ehhez a webszolgáltatáshoz, megadhatja a GET, POST, DELETE és PUT normál HTTP igéket. Az alábbiakban bemutatjuk, mi történne, ha a megfelelő igéket az ügyfél küldte volna el.
- POST – Ezzel új alkalmazottat hoznának létre a RESTful webszolgáltatás segítségével
- GET – Ez arra szolgál, hogy megkapja a RESTful webszolgáltatást használó összes alkalmazott listáját
- PUT – Ez a RESTful webszolgáltatást használó összes alkalmazott frissítésére szolgál
- DELETE – Ez a RESTful szolgáltatásokat használó összes alkalmazott törlésére szolgál
Vessünk egy pillantást egyetlen lemez szemszögéből. Tegyük fel, hogy volt egy alkalmazotti rekord 1-es alkalmazotti számmal.
A következő műveleteknek megvan a maguk jelentése.
- POST – Ez nem alkalmazható, mivel az 1. alkalmazott adatait kérjük le, amely már létrejött.
- GET – Ezt arra használnák, hogy a RESTful webszolgáltatás segítségével megkapják az 1-es alkalmazotti számmal rendelkező munkavállaló adatait
- PUT – Ez az 1-es alkalmazotti számmal rendelkező alkalmazott adatainak frissítésére szolgál a RESTful webszolgáltatás használatával
- DELETE – Ezzel törölheti az 1-es alkalmazotti számmal rendelkező munkavállaló adatait
Miért Nyugodt
A Restful leginkább a következő okok miatt vált népszerűvé:
1. Heterogén nyelvek és környezetek – Ez az egyik alapvető ok, ami ugyanaz, mint amit láttunk SOAP is.
- Lehetővé teszi a különféle programozási nyelvekre épülő webalkalmazások egymás közötti kommunikációját
- A Restful szolgáltatások segítségével ezek a webalkalmazások különböző környezetekben is elhelyezkedhetnek, egyesek bekapcsolva is lehetnek Windows, és mások is lehetnek Linuxon.
De végső soron bármilyen környezet is legyen, a végeredmény mindig ugyanaz legyen, hogy beszélni tudjanak egymással. A nyugodt webszolgáltatások ezt a rugalmasságot kínálják a különféle programozási nyelvekre és platformokra épülő alkalmazásoknak, hogy beszéljenek egymással.
Az alábbi kép egy olyan webalkalmazásra mutat példát, amelynek más alkalmazásokkal kell kommunikálnia, mint például a Facebook, a Twitter és a Google.
Ha egy kliens alkalmazásnak olyan oldalakkal kellene működnie, mint a Facebook, Twitter stb., akkor valószínűleg tudnia kell, hogy milyen nyelvre épül a Facebook, a Google és a Twitter, és azt is, hogy milyen platformra épülnek.
Ez alapján meg tudjuk írni a webes alkalmazásunk interfész kódját, de ez rémálomnak bizonyulhat.
A Facebook, a Twitter és a Google Restful webszolgáltatások formájában tárja fel funkcióit. Ez lehetővé teszi bármely ügyfélalkalmazás számára, hogy a REST-en keresztül hívja ezeket a webszolgáltatásokat.
2. Az Eszközök eseménye – Manapság mindennek működnie kell Mobil eszközök, legyen szó mobileszközről, notebookokról vagy akár autórendszerekről.
El tudja képzelni, mekkora erőfeszítést igényel az alkalmazások kódolása ezeken az eszközökön, hogy normál webes alkalmazásokkal kommunikáljanak? A Restful API-k ismét leegyszerűsíthetik ezt a munkát, mivel az 1. pontban említettek szerint valóban nem kell tudnia, hogy mi az eszköz mögöttes rétege.
3. Végül a Felhő eseménye – Minden a felhőbe költözik. Az alkalmazások lassan áttérnek a felhőalapú rendszerekre, mint pl Azure or Amazon. Azure és a Amazon sok API-t biztosítanak a Restful architektúrán. Ezért az alkalmazásokat most úgy kell fejleszteni, hogy kompatibilisek legyenek a felhővel. Tehát mivel minden felhőalapú architektúra a REST elven működik, ésszerűbb, ha a webszolgáltatásokat a REST-szolgáltatásokon alapuló architektúrára programozzák, hogy a felhőalapú szolgáltatásokat a lehető legjobban kihasználják.
Nyugalmas Architectúra
A RESTful-nak vagy REST-stílusúnak tekintett alkalmazás vagy architektúra a következő jellemzőkkel rendelkezik
1. Az állapot és a funkcionalitás elosztott erőforrásokra van felosztva – Ez azt jelenti, hogy minden erőforrásnak elérhetőnek kell lennie a GET, POST, PUT vagy DELETE normál HTTP-parancsaival. Tehát ha valaki fájlt szeretne lekérni egy szerverről, akkor képesnek kell lennie a GET kérés kiadására és a fájl lekérésére. Ha fájlt akarnak elhelyezni a szerveren, akkor ki kell tudniuk adni a POST vagy PUT kérést. És végül, ha törölni akartak egy fájlt a szerverről, kiadhatják a DELETE kérést.
2. Az architektúra kliens/szerver, állapot nélküli, rétegzett, és támogatja a gyorsítótárazást
- A kliens-szerver az a tipikus architektúra, ahol a szerver lehet az alkalmazást kiszolgáló webszerver, a kliens pedig olyan egyszerű, mint a webböngésző.
- Az állapot nélküli azt jelenti, hogy az alkalmazás állapotát a REST nem tartja fenn. Ha például a DELETE paranccsal töröl egy erőforrást egy kiszolgálóról, akkor nem számíthat arra, hogy a törlési információkat átadja a következő kérésnek.
Az erőforrás törlésének biztosítása érdekében ki kell adnia a GET-kérést. A GET kérés először a kiszolgálón lévő összes erőforrás lekérésére szolgál. Ezt követően meg kell nézni, hogy az erőforrás valóban törölve lett-e.
RESTFul elvek és korlátok
A REST architektúra néhány jellemzőn alapul, amelyeket az alábbiakban részletezünk. Bármely RESTful webszolgáltatásnak meg kell felelnie az alábbi jellemzőknek ahhoz, hogy RESTful elnevezésű legyen. Ezeket a jellemzőket tervezési elveknek is nevezik, amelyeket követni kell a RESTful alapú szolgáltatásokkal végzett munka során.
Ez a REST alapú architektúra legalapvetőbb követelménye. Ez azt jelenti, hogy a szerver rendelkezik egy RESTful webszolgáltatással, amely biztosítja a szükséges funkcionalitást az ügyfél számára. Az ügyfél kérést küld a szerver webszolgáltatásának. A szerver vagy elutasítja a kérést, vagy teljesíti és megfelelő választ ad az ügyfélnek.
- hontalan
Az állapotmentesség fogalma azt jelenti, hogy az ügyfélen múlik, hogy minden szükséges információt megkapjon a szerver. Erre azért van szükség, hogy a szerver megfelelően tudja feldolgozni a választ. A szerver nem tarthat fenn semmilyen információt az ügyféltől érkező kérések között. Ez egy nagyon egyszerű független kérdés-válasz sorozat. A kliens feltesz egy kérdést, a szerver megfelelően válaszol rá. Az ügyfél újabb kérdést tesz fel. A szerver nem emlékszik az előző kérdés-válasz forgatókönyvre, és az új kérdésre önállóan kell válaszolnia.
- Gyorsítótár
A gyorsítótár koncepció az utolsó pontban leírt hontalanság problémáján segít. Mivel minden kiszolgálókliens-kérelem független természetű, előfordulhat, hogy a kliens újra kérheti a kiszolgálótól ugyanazt a kérést. Ez annak ellenére van így, hogy a múltban már kérte. Ez a kérés eljut a szerverhez, és a szerver választ ad. Ez növeli a hálózaton keresztüli forgalmat. A gyorsítótár egy olyan koncepció, amelyet a kliens implementál a szervernek már elküldött kérések tárolására. Tehát ha ugyanazt a kérést adja a kliens, ahelyett, hogy a szerverre menne, a gyorsítótárba kerülne, és megkapja a szükséges információkat. Ez megtakarítja a klienstől a szerverig tartó oda-vissza hálózati forgalmat.
- Réteges rendszer
A réteges rendszer fogalma az, hogy bármilyen további réteg, például köztesszoftver réteg beilleszthető a kliens és a RESTFul webszolgáltatást kiszolgáló tényleges szerver közé (A köztes szoftver réteg az, ahol az összes üzleti logika létrejön. Ez egy extra szolgáltatás lehet létre, amellyel az ügyfél interakcióba léphet, mielőtt felhívná a webszolgáltatást.). De ennek a rétegnek a bevezetésének átláthatónak kell lennie, hogy ne zavarja a kliens és a szerver közötti interakciót.
- Interfész/Egységes szerződés
Ez a RESTful webszolgáltatások működésének alapvető technikája. A RESTful alapvetően a HTTP webes rétegen működik, és az alábbi kulcsigéket használja a kiszolgálón lévő erőforrások kezeléséhez
- POST – Erőforrás létrehozása a szerveren
- GET – Erőforrás lekérése a szerverről
- PUT – Az erőforrás állapotának módosítása vagy frissítése
- TÖRLÉS – Erőforrás eltávolítása vagy törlése a szerverről
Hozza létre első Restful webszolgáltatását az ASP.NET-ben
Ebben a REST API oktatóanyagban megtanuljuk, hogyan hozhat létre Restful webszolgáltatást az ASP.NET-ben:
A webszolgáltatások többféle nyelven hozhatók létre. Számos integrált fejlesztői környezet használható REST alapú szolgáltatások létrehozására.
Ebben a RESTful API-példában a REST-alkalmazásunkat a .Neten a Visual Studio segítségével fogjuk létrehozni. Példánkban a Restful webszolgáltatásokhoz a következő REST szolgáltatáspéldát fogjuk emulálni.
Lesz egy Restful webszolgáltatásunk, amely az alábbi adatokkal fog működni.
Az alábbi adatkészlet egy REST API-példát mutat be egy vállalatra, amely az oktatóprogramon alapuló oktatóanyagot teszi közzé.
Tutorialid | TutorialName |
---|---|
0 | tömbök |
1 | sorok |
2 | Stacks |
A REST API oktatóprogramunkban az alábbi Restful igéket fogjuk megvalósítani.
- GET Tutorial – Amikor egy ügyfél meghívja ezt a Restful API-t, megkapja a webszolgáltatásból elérhető oktatóanyagok teljes készletét.
- GET Tutorial/Tutorialid – Amikor egy ügyfél meghívja ezt a Restful API-t, az ügyfél által küldött oktatóprogram alapján megkapja az oktatóprogram nevét.
- POST oktatóanyag/oktatóanyag neve – Amikor egy kliens meghívja ezt a Restful API-t, az ügyfél kérést küld be egy oktatóanyagnév beszúrására. A webszolgáltatás ezután hozzáadja a beküldött oktatóanyag nevét a gyűjteményhez.
- Oktatóanyag/Oktatóanyag TÖRLÉSE– Amikor egy kliens meghívja ezt a Restful API-t, az ügyfél kérést küld egy oktatóprogramnév törlésére az oktatóprogram alapján. A webszolgáltatás ezután törli a beküldött oktatóanyag nevét a gyűjteményből.
Kövesse az alábbi lépéseket ebben a RESTful API oktatóanyagban, hogy létrehozza első RESTful webszolgáltatásunkat, amely végrehajtja a fenti megvalósítást.
Az első pihentető webszolgáltatás létrehozása
Step 1) Új projekt létrehozása.
Az első lépés egy üres létrehozása Asp.Net Webes alkalmazás. A Visual Studio 2013-ban kattintson a Fájl->Új projekt menüpontra.
Miután rákattint az Új projekt lehetőségre, a Visual Studio egy másik párbeszédablakot ad a projekt típusának kiválasztásához és a projekt szükséges részleteinek megadásához. Ezt a RESTful API oktatóanyag következő lépésében ismertetjük
Step 2) Adja meg a projekt nevét és helyét.
- Először válassza ki a RESTful webszolgáltatásokat C# ASP.NET webalkalmazás websablonja. A projektnek ilyen típusúnak kell lennie a webszolgáltatási projekt létrehozásához. Ha ezt a lehetőséget választja, a Visual Studio elvégzi a szükséges lépéseket a szükséges fájlok hozzáadásához, amelyeket bármely webalapú alkalmazás igényel.
- Adjon nevet a projektjének, amelyet esetünkben „Webservice.REST”-nek adtunk.
- Ezután győződjön meg arról, hogy adjon meg egy helyet, ahol a projektfájlokat tárolni fogja.
Ha elkészült, látni fogja a Visual Studio 2013 megoldáskezelőjében létrehozott projektfájlt.
Step 3) Hozza létre a webszolgáltatási fájlt.
A következő lépés a webszolgáltatási fájl létrehozása, amely a RESTful webszolgáltatást tartalmazza
- Először kattintson a jobb gombbal a projektfájlra az alábbiak szerint
- Ebben a lépésben a
- Kattintson a jobb gombbal a projektfájlra
- Válassza a „Hozzáadás->új elem” lehetőséget.
A megjelenő párbeszédpanelen a következőket kell végrehajtania
- Válassza a WCF szolgáltatás opciót (Ajax-kompatibilis) – Válasszon egy ilyen típusú fájlt, ez okozza a Visual studio néhány alapvető kód hozzáadásához, amely segít egy RESTful webszolgáltatás létrehozásában. A WCF jelentése Windows Kommunikáció Foundation. A WCF egy könyvtár különböző platformok vagy ugyanazon platform alkalmazásai számára a különböző protokollokon, például TCP, HTTP, HTTPS közötti kommunikációhoz. Az Ajax alapvetően aszinkron JavaForgatókönyv és XML. Az AJAX lehetővé teszi a weboldalak aszinkron frissítését kis mennyiségű adatcserével a színfalak mögötti szerverrel.
- Ezután adjon nevet a szolgáltatásnak, amely esetünkben TutorialService.
- Végül kattintson a Hozzáadás gombra a szolgáltatás hozzáadásához a megoldáshoz.
Step 4) Készítsen konfigurációt.
A következő lépés a konfiguráció módosítása annak érdekében, hogy ez a projekt befejezhesse a munkát a RESTful webszolgáltatásokkal. Ehhez módosítani kell a nevű fájlt Web.config. Ez a fájl ugyanabban az ablakban jelenik meg, mint a Webservice projektfájl. A Web.config fájl tartalmazza az összes olyan konfigurációt, amely a webalkalmazást úgy működik, ahogyan kell. A végrehajtott változtatás valójában lehetővé teszi az alkalmazás számára, hogy tiszta RESTful webszolgáltatásként küldjön és fogadjon adatokat.
- Kattintson a Web.config fájlra a kód megnyitásához
- Keresse meg a vonalat
- Módosítsa a sort erre
Step 5) Adja hozzá kódunkat a megvalósításhoz.
A RESTful API oktatóanyag következő lépése a kódunk hozzáadása a megvalósításhoz. Az összes alább említett kódot be kell írni a TutorialService.svc fájlba
- Az első bit az, hogy kódot adjunk hozzá a programunkban használt adatainknak. Tehát lesz egy listánk a karakterlánc-változókról, amelyek értéke „Arrays”, „Queues” és „Stacks”. Ez a webtárhely-szolgáltatásunkon keresztül elérhető oktatóanyagok neve lesz.
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"});
Step 6) Határozza meg a GET metódusunk kódját.
Ezután meghatározzuk a GET metódusunk kódját. Ez a kód ugyanabban a TutorialService.svc fájlban is megtalálható lesz. Ez a kód minden alkalommal lefut, amikor böngészőnkből hívjuk a szolgáltatást.
Az alábbi módszert alkalmazzuk az alább említett forgatókönyv teljesítéséhez
- Ha egy felhasználó az összes elérhető oktatóanyag listáját szeretné elérni, akkor ehhez meg kell írnia az alábbi kódot.
[WebGet(UriTemplate="/Tutorial")] public String GetAllTutorial() { int count = 1st.Count; String TutorialList = ""; for (int i = 0; i < count; i++) TutorialList = TutorialList + lst[i] + ","; return TutorialList; }
Kód magyarázata: -
- A kód első sora a legfontosabb. Arra szolgál, hogy meghatározzuk, hogyan hívhatjuk meg ezt a metódust URL-en keresztül. Tehát ha a webszolgáltatásunk linkje az http://localhost:52645/TutorialService.svc és ha a '/Tutorial'-t hozzáfűzzük az URL-hez as http://localhost:52645/TutorialService.svc/Tutorial , akkor a rendszer a fenti kódot hívja meg. A 'WebGet' attribútuma egy olyan paraméter, amely lehetővé teszi, hogy ez a metódus RESTful metódus legyen, így a GET igén keresztül hívható meg.
- Ez a kódrészlet arra szolgál, hogy végignézzük az 'lst' változóban található karakterláncok listáját, és visszaküldjük mindegyiket a hívó programnak.
Step 7) Adja vissza a kimenetet.
Az alábbi kód biztosítja, hogy ha GET-hívás történik az oktatóprogram-szolgáltatáshoz egy oktatóanyag-azonosítóval, akkor az a megfelelő oktatóanyag-nevet adja vissza az oktatóanyag-azonosító alapján.
[WebGet (UriTemplate = "/Tutorial/{Tutorialid}")] public String GetTutorialbyID(String Tutorialid) { int pid; Int32.TryParse(Tutorialid, out pid); return lst[pid]; }
Kód magyarázata: -
- A kód első sora a legfontosabb. Arra szolgál, hogy meghatározzuk, hogyan hívhatjuk meg ezt a metódust URL-en keresztül. Tehát ha a webszolgáltatásunk linkje az http://localhost:52645/TutorialService.svc és ha hozzáfűzzük a „/Tutorial/{Tutorialid}” címet az URL-hez, akkor hívhatjuk a webszolgáltatást http://localhost:52645/TutorialService.svc/Tutorial/1 mint például. A webszolgáltatásnak ezután vissza kell adnia az oktatóprogram nevét, amelynek az oktatóprogram azonosítója #1.
- A kód ezen szakasza az „oktatóanyag neve” visszaadására szolgál, amelynek az oktatóprogram azonosítója át van adva a webes metódusnak.
- Alapértelmezés szerint emlékezni kell arra, hogy bármi, amit a böngészőben az URL-hez továbbítanak, az egy karakterlánc.
- De ne feledje, hogy a listánk indexének egész számnak kell lennie, ezért hozzáadjuk a szükséges kódot ahhoz, hogy először a Tutorialidot egész számmá konvertáljuk, majd felhasználjuk a listánk indexpozíciójának eléréséhez, és
- Ezután ennek megfelelően adja vissza az értéket a hívó programnak.
Step 8) Írja be a POST metódus kódját.
A következő lépés a POST metódusunk kódjának felírása. Ezt a metódust minden alkalommal meghívjuk, amikor a POST metóduson keresztül karakterlánc-értéket szeretnénk hozzáadni az oktatóanyagok listájához. Például, ha hozzá szeretné adni a „Szoftvertesztelés” oktatóanyag nevét, akkor a POST módszert kell használnia.
Kód magyarázata: -
- Az első sor a „WebInvoke” attribútum, amelyet a metódusunkhoz csatoltunk. Ez lehetővé teszi a metódus meghívását a POST híváson keresztül. A RequestFormat és ResponseFormat attribútumot JSON-ként kell megemlíteni, mivel amikor értékeket tesz közzé egy RESTFul webszolgáltatásba, az értékeknek ebben a formátumban kell lenniük.
- A második kódsor a POST-híváson keresztül átadott karakterlánc-érték hozzáadására szolgál az oktatói karakterláncok meglévő listájához.
Step 9) Módszer hozzáadása a DELETE művelet kezeléséhez.
Végül hozzáadjuk a módszerünket a DELETE művelet kezelésére. Ez a metódus minden alkalommal meghívásra kerül, amikor törölni akarunk egy meglévő karakterlánc-értéket az oktatóanyagok listájáról a DELETE metódussal.
[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); 1st.RemoveAt(pid); }
Kód magyarázata: -
- Az első sor a „WebInvoke” attribútum, amelyet a metódusunkhoz csatoltunk. Ez lehetővé teszi a metódus meghívását a POST híváson keresztül. A RequestFormat és ResponseFormat attribútumot JSON-ként kell megemlíteni, mivel az értékeknek egy RESTFul webszolgáltatásba való közzétételekor az értékeknek ebben a formátumban kell lenniük. Vegye figyelembe, hogy a Method paraméter beállítása „DELETE”. Ez azt jelenti, hogy valahányszor kiadjuk a DELETE igét, ez a metódus kerül meghívásra.
- A második kódsor a DELETE hívással küldött Tutorialid felvételére szolgál, majd ezt követően törli az azonosítót a listánkból. (A Int32 függvény kódban az oktatóprogram azonosítóját karakterláncváltozóból egész számmá alakítja).
Az első Restful webszolgáltatás futtatása
Most, hogy a fenti részben létrehoztuk a teljes webszolgáltatásunkat. Nézzük meg, hogyan tudjuk úgy futtatni a Tutorial szolgáltatást, hogy bármely kliensből meg lehessen hívni.
A webszolgáltatás futtatásához kövesse az alábbi lépéseket
Step 1) Kattintson a jobb gombbal a Project fájlra – Webservice.REST
Step 2) Válassza a „Beállítás indítási projektként” menüpontot. Ez biztosítja a projekt futtatását, amikor a Visual Studio a teljes megoldást futtatja
Step 3) A következő lépés maga a projekt futtatása. A rendszerre telepített alapértelmezett böngészőtől függően a megfelelő böngészőnév megjelenik a Visual Studio futtatása gombja mellett. A mi esetünkben megvan Google Chrome felbukkan. Csak kattintson erre a gombra.
Kimenet:-
Amikor a projekt fut, böngészhet a TutorialService.svc/Tutorial szakaszban, és megkapja az alábbi kimenetet.
A fenti kimenetben
- Látható, hogy a böngésző meghívja a „GET” igét, és végrehajtja a „GetAllTutorial” metódust a webszolgáltatásban. Ez a modul a webszolgáltatásunk által közzétett összes oktatóanyag megjelenítésére szolgál.
Az első Restful webszolgáltatás tesztelése
A fenti részben már láthattuk, hogyan kell a böngészőt használni a „GET” ige végrehajtására és a „GetAllTutorial” meghívására.
- Használjuk most a böngészőt a következő használati eset forgatókönyv végrehajtásához.
GET Tutorial/Tutorialid – Amikor egy kliens meghívja ezt a Restful API-t, akkor az ügyfél által küldött oktatóprogram alapján megkapja az oktatóprogram nevét.
A böngészőben fűzze hozzá a /1 karakterláncot az oktatóanyag szó után az URL-ben. Ha megnyomja az Enter gombot, az alábbi kimenetet kapja
Most látni fogja a Queues kimenetét, amely valójában megfelel az 1-es számnak az oktatói karakterláncok listájában. Ez azt jelenti, hogy a 'GetTutorialbyID' metódus most meghívásra kerül a webszolgáltatásunkból. Ez azt is mutatja, hogy az 1-es érték sikeresen átadásra kerül a böngészőn keresztül a webszolgáltatásunknak és a módszerünknek, ezért kapjuk meg a megfelelő „Várólisták” értékét a böngészőben.
- Ezután használjuk fel webszolgáltatásunkat az alábbi forgatókönyv végrehajtásával. Ehhez telepítenie kell a „Fiddler” amely egy ingyenesen letölthető eszköz az oldalról.
POST oktatóanyag/oktatóanyagnév – Amikor egy ügyfél meghívja ezt a Restful API-t, az ügyfél kérést küld be egy oktatóanyagnév beszúrására. A webszolgáltatás ezután hozzáadja a beküldött oktatóanyag nevét a gyűjteményhez.
Futtassa a Filddler eszközt, és hajtsa végre az alábbi lépéseket;
- Menjen a zeneszerző részhez. Ez olyan kérések létrehozására szolgál, amelyek bármely webalkalmazáshoz benyújthatók.
- Győződjön meg arról, hogy a kérés típusa „POST”, és a megfelelő URL-t találja, ami esetünkben annak kell lennie http://localhost:52645/TutorialService.svc/Tutorial
- Győződjön meg arról, hogy a Content-Type alkalmazás/json-ként van megjelölve. Ne feledje, hogy a webszolgáltatásunkban található POST-kérési módszerünk csak a json stílusú adatokat fogadja el, ezért gondoskodnunk kell arról, hogy ez legyen megadva, amikor kérést küldünk az alkalmazásunknak.
- Végül meg kell adnunk az adatainkat. Ne feledje, hogy a POST metódusunk elfogadja az 'str' nevű paramétert. Tehát itt azt adjuk meg, hogy szeretnénk hozzáadni egy „Fák” nevű értéket az oktatóprogramok neveinek gyűjteményéhez, és biztosítani szeretnénk, hogy az str változónévhez legyen címkézve.
Végül kattintson az Execute gombra a hegedűsben. Ezzel kérést küldünk a webszolgáltatásnak, hogy a „Fák” adatait KÖZZÉTÜK webszolgáltatásunkba.
Most, amikor az oktatóanyag URL-címére böngészünk, hogy megjelenítsük az oktatóprogramok listájában szereplő összes karakterláncot, akkor a „Fák” értéke is jelen van. Ez azt mutatja, hogy a webszolgáltatáshoz intézett POST kérés sikeresen végrehajtva, és sikeresen felkerült az oktatóprogramok listájára.
- Ezután használjuk fel webszolgáltatásunkat az alábbi forgatókönyv végrehajtásával. Ehhez a hegedűs eszközt is használnunk kell
Oktatóanyag/oktatóprogram TÖRLÉSE – Amikor egy kliens meghívja ezt a Restful API-t, az ügyfél kérést küld el egy oktatóanyagnév törlésére az oktatóprogram alapján. A webszolgáltatás ezután törli a beküldött oktatóanyag nevét a gyűjteményből.
Futtassa a Filddler eszközt, és hajtsa végre az alábbi lépéseket
- Menjen a zeneszerző részhez. Ez olyan kérések létrehozására szolgál, amelyek bármely webalkalmazáshoz benyújthatók.
- Győződjön meg arról, hogy a kérés típusa „TÖRLÉS”, és a megfelelő URL-t találja, aminek esetünkben annak kell lennie http://localhost:52645/TutorialService.svc/Tutorial. Győződjön meg arról, hogy az URL-en keresztül paraméterként küldött karakterlánc törlésére használt azonosító. A REST példánkban 1-et küldünk, így ez törli a 2-tnd gyűjteményünk eleme, amely a „Várólisták”.
Végül kattintson az Execute gombra a hegedűsben. Ezzel kérést küldünk a webszolgáltatásnak, hogy TÖRLÉSE a „Várólisták” adatokat webszolgáltatásunkba.
Most, amikor az oktatóprogram URL-címére böngészünk, hogy megjelenítsük az oktatóprogramok listájában szereplő összes karakterláncot, észreveheti, hogy a „Várólisták” értéke már nincs jelen.
Ez azt mutatja, hogy a webszolgáltatáshoz intézett DELETE kérés sikeresen végrehajtva. Az oktatói karakterláncok listájából az 1. indexszámú elemet sikeresen töröltük.
Összegzésként
- A REST a reprezentatív állapottranszfer rövidítése. A REST-et könnyű, karbantartható és méretezhető webszolgáltatások létrehozására használják.
- Egyre több alkalmazás tér át a Restful architektúrára. Ennek az az oka, hogy ma már nagyon sokan használnak mobileszközöket és egyre szélesebb körben költöznek a felhőbe.
- A REST fő szempontjai a szerveren található erőforrások, valamint a GET, POST, PUT és DELETE igék, amelyek az erőforrásokkal való együttműködésre használhatók.
- A Visual Studio és a.Net segítségével Restful webszolgáltatások hozhatók létre.
- Amikor Tesztelés webszolgáltatások a POST és PUT számára, akkor egy másik, fiddler nevű eszközt kell használnia, amellyel elküldheti a POST és PUT kéréseket a szervernek.