Handleiding voor RESTful webservices: voorbeeld van een REST API
โก Slimme samenvatting
RESTful webservices bieden een lichtgewicht, stateless benadering voor applicaties om gegevens uit te wisselen via HTTP met behulp van standaard HTTP-methoden. Ze stellen resources beschikbaar via een overzichtelijke interface. URLwaardoor schaalbare, platformonafhankelijke communicatie mogelijk wordt tussen gedistribueerde clients, servers, mobiele apparaten en moderne cloud- en AI-platformen.
Wat is Restful Web Services?
Rustgevende webservices Een RESTful webservice is een lichtgewicht, onderhoudbare en schaalbare service die is gebouwd op de REST-architectuur. Een RESTful webservice stelt een API van uw applicatie op een veilige, uniforme en stateless manier beschikbaar aan de aanroepende client. De aanroepende client kan vervolgens vooraf gedefinieerde bewerkingen uitvoeren met behulp van de RESTful service. Het onderliggende protocol voor REST is HTTP, en REST staat voor Representational State Transfer (representatieve statusoverdracht).
Simpel gezegd definieert REST een standaardmethode voor het aanmaken, lezen, bijwerken en verwijderen van resources, zoals documenten, afbeeldingen of databasegegevens, via het web. Omdat het gebruikmaakt van standaard HTTP, kan vrijwel elke programmeertaal of elk apparaat een RESTful-service gebruiken zonder speciale tools.
Waarom zou je RESTful webservices gebruiken?
Voordat we de technische details induiken, is het nuttig om te begrijpen waarom REST zo populair is geworden. RESTful webservices zijn om de volgende redenen zo belangrijk geworden:
1. Heterogene talen en omgevingen โ Dit is een van de fundamentele redenen, die dezelfde is als we hebben gezien voor SOAP .
- Het maakt het mogelijk dat webapplicaties die in verschillende programmeertalen zijn gebouwd, met elkaar kunnen communiceren.
- Met behulp van RESTful-services kunnen deze webapplicaties in verschillende omgevingen draaien; sommige zouden bijvoorbeeld op een server kunnen staan. Windows, en andere kunnen op Linux draaien.
Uiteindelijk moet het resultaat, ongeacht de omgeving, altijd hetzelfde zijn: de applicaties moeten met elkaar kunnen communiceren. Restful webservices bieden deze flexibiliteit aan applicaties die gebouwd zijn in verschillende programmeertalen en op diverse platforms.
De onderstaande afbeelding toont een voorbeeld van een webapplicatie die moet communiceren met andere applicaties zoals Facebook, Twitter en Google.
Als een clientapplicatie moest samenwerken met sites zoals Facebook en Twitter, moesten de ontwikkelaars normaal gesproken weten op welke programmeertaal en welk platform die sites waren gebouwd. Op basis daarvan konden ze de interfacecode schrijven, maar deze aanpak zou qua onderhoud een ware nachtmerrie kunnen blijken.
In plaats daarvan Facebook, Twitter en Google Hun functionaliteit beschikbaar stellen in de vorm van RESTful webservices. Hierdoor kan elke clientapplicatie deze webservices via REST aanroepen, ongeacht de onderliggende technologie.
2. De gebeurtenis van Apparaten โ Tegenwoordig moet aan alles gewerkt worden Mobile apparaten, of het nu een mobiele telefoon, een laptop of zelfs een autosysteem is.
Stel je eens voor hoeveel moeite het kost om applicaties op deze apparaten te programmeren die met normale webapplicaties communiceren. Ook hier geldt dat RESTful API's dit een stuk eenvoudiger maken, omdat je, zoals in punt รฉรฉn al werd genoemd, de onderliggende laag van het apparaat niet hoeft te kennen.
3. Het Cloud-evenement โ Alles migreert naar de cloud. Applicaties worden geleidelijk aan overgezet naar cloudgebaseerde systemen zoals Azure or Amazon. Azure en Amazon Er zijn veel API's beschikbaar die gebaseerd zijn op de RESTful-architectuur. Daarom moeten applicaties nu zo ontwikkeld worden dat ze compatibel zijn met de cloud. Omdat alle cloudgebaseerde architecturen werken volgens het REST-principe, is het logisch dat webdiensten geprogrammeerd worden volgens een REST-architectuur om optimaal gebruik te maken van clouddiensten.
RESTful sleutelelementen
REST-webservices hebben sinds hun ontstaan โโeen lange weg afgelegd. In 2002 publiceerde het Web Consortium de definitie van WSDL- en SOAP-webservices. Dit vormde de standaard voor de implementatie van webservices.
In 2004 publiceerde het webconsortium ook de definitie van een aanvullende standaard genaamd RESTful. Deze standaard is de afgelopen jaren erg populair geworden en wordt nu gebruikt door veel van de populairste websites ter wereld, waaronder Facebook en Twitter.
REST is een manier om toegang te krijgen tot resources die zich in een specifieke omgeving bevinden. Je kunt bijvoorbeeld een server hebben die belangrijke documenten, afbeeldingen of video's host. Dit zijn allemaal voorbeelden van resources. Als een client, zoals een webbrowser, een van deze resources nodig heeft, moet deze een verzoek naar de server sturen. REST-services definiรซren een standaardmanier waarop deze resources kunnen worden benaderd.
De belangrijkste elementen van een RESTful-implementatie zijn als volgt:
- Informatiebronnen โ Het eerste cruciale element is de bron zelf. Laten we aannemen dat een webapplicatie op een server gegevens van verschillende medewerkers bevat. Laten we aannemen dat... URL van de webapplicatie is https://demo.guru99.comOm nu via REST-services toegang te krijgen tot een werknemersrecord, kan men het volgende commando gebruiken: https://demo.guru99.com/employee/1Deze opdracht vertelt de webserver om de gegevens te verstrekken van de medewerker met personeelsnummer 1.
- Vraag werkwoorden aan โ Deze beschrijven wat je met de bron wilt doen. Een browser gebruikt een GET-verzoek om het eindpunt te laten weten dat het gegevens wil ophalen. Er zijn echter veel andere verzoeken beschikbaar, waaronder POST, PUT en DELETE. Dus, in het geval van het voorbeeld... https://demo.guru99.com/employee/1De webbrowser gebruikt in feite een GET-verzoek omdat hij de gegevens van het werknemersdossier wil ophalen.
- Verzoek headers โ Dit zijn aanvullende instructies die met het verzoek worden meegestuurd. Ze kunnen het type reactie dat vereist is of de autorisatiegegevens specificeren.
- Verzoektekst โ Dit zijn de gegevens die met het verzoek worden meegestuurd. Gegevens worden normaal gesproken in de request body verzonden wanneer een POST-verzoek naar de REST-webservice wordt gedaan. Bij een POST-aanroep vertelt de client de REST-webservice dat hij een resource aan de server wil toevoegen. De request body bevat daarom de details van de resource die moet worden toegevoegd.
- Reactie lichaam โ Dit is het hoofdgedeelte van het antwoord. Dus, in ons RESTful API-voorbeeld, als we de webserver zouden bevragen via het verzoek. https://demo.guru99.com/employee/1De webserver kan een XML-document retourneren met alle gegevens van de medewerker in de responsbody.
- Reactiestatuscodes โ Dit zijn de algemene codes die samen met het antwoord van de webserver worden teruggestuurd. Een voorbeeld is code 200, die normaal gesproken wordt teruggestuurd als er geen fout optreedt bij het terugsturen van een antwoord naar de client.
Rustgevende methoden
Het onderstaande diagram toont de meeste werkwoorden (POST, GET, PUT en DELETE) en een REST API-voorbeeld van wat ze betekenen.
Laten we ervan uitgaan dat we een RESTful webservice hebben gedefinieerd op de locatie https://demo.guru99.com/employeeWanneer de client een verzoek indient bij deze webservice, kan hij een van de gebruikelijke HTTP-werkwoorden GET, POST, DELETE en PUT specificeren. Hieronder wordt weergegeven wat er zou gebeuren als de client de betreffende werkwoorden zou verzenden.
- POST Dit zou gebruikt worden om een โโnieuwe medewerker aan te maken via de RESTful webservice.
- Begin Dit zou gebruikt worden om een โโlijst te krijgen van alle medewerkers die gebruikmaken van de RESTful webservice.
- PUT Dit zou gebruikt worden om alle medewerkers via de RESTful webservice op de hoogte te houden.
- VERWIJDEREN Dit zou gebruikt worden om alle medewerkers te verwijderen via de RESTful-service.
Laten we nu eens kijken vanuit het perspectief van slechts รฉรฉn record. Stel dat er een werknemersrecord is met werknemersnummer 1. De volgende acties zouden dan elk hun eigen betekenis hebben.
- POST โ Dit is niet van toepassing, aangezien we gegevens ophalen van medewerker 1, die al is aangemaakt.
- Begin Dit zou gebruikt worden om de gegevens van de medewerker met medewerkersnummer 1 op te halen via de RESTful webservice.
- PUT Dit zou worden gebruikt om de gegevens van medewerker nummer 1 bij te werken via de RESTful webservice.
- VERWIJDEREN โ Hiermee worden de gegevens van de medewerker met medewerkersnummer 1 verwijderd.
Rustgevend Architectuur
Een applicatie of architectuur die als RESTful of REST-achtig wordt beschouwd, heeft de volgende kenmerken.
1. Staat en functionaliteit zijn onderverdeeld in gedistribueerde bronnen Dit betekent dat elke bron toegankelijk moet zijn via de gebruikelijke HTTP-commando's GET, POST, PUT en DELETE. Dus als iemand een bestand van een server wil ophalen, moet diegene een GET-verzoek kunnen versturen. Als iemand een bestand op de server wil plaatsen, moet dat mogelijk zijn met een POST- of PUT-verzoek. En als iemand een bestand van de server wil verwijderen, kan dat met een DELETE-verzoek.
2. De architectuur is client/server, stateless, gelaagd en ondersteunt caching.
- Client-server is de typische architectuur waarbij de server de webserver kan zijn die de applicatie host, en de client net zo eenvoudig kan zijn als de webbrowser.
- Stateless betekent dat de status van de applicatie niet behouden blijft in REST. Als u bijvoorbeeld een bron van een server verwijdert met de opdracht DELETE, kunt u niet verwachten dat die verwijderinformatie wordt doorgegeven aan het volgende verzoek.
Om te controleren of de resource daadwerkelijk is verwijderd, moet u een GET-verzoek versturen. Met een GET-verzoek worden eerst alle resources op de server opgehaald, waarna gecontroleerd moet worden of de resource daadwerkelijk is verwijderd.
RESTful-principes en beperkingen
De REST-architectuur is gebaseerd op een aantal kenmerken, die hieronder worden toegelicht. Elke RESTful webservice moet aan deze kenmerken voldoen om als RESTful te worden beschouwd. Deze kenmerken staan โโook bekend als ontwerpprincipes die moeten worden gevolgd bij het werken met RESTful-gebaseerde services.
Dit is de meest fundamentele vereiste van een REST-architectuur. Het betekent dat de server een RESTful webservice heeft die de benodigde functionaliteit aan de client levert. De client stuurt een verzoek naar de webservice op de server. De server wijst het verzoek vervolgens af of voldoet eraan en geeft een passend antwoord aan de client.
- stateless
Het concept van stateless betekent dat de client ervoor moet zorgen dat alle benodigde informatie aan de server wordt verstrekt. Dit is nodig zodat de server het antwoord correct kan verwerken. De server mag geen informatie bewaren tussen verzoeken van de client. Het is een zeer eenvoudige, onafhankelijke vraag-antwoordsequentie. De client stelt een vraag en de server beantwoordt deze op passende wijze. Wanneer de client een nieuwe vraag stelt, onthoudt de server het vorige vraag-antwoordscenario niet en moet de nieuwe vraag onafhankelijk beantwoorden.
- cache
Het cacheconcept helpt bij het oplossen van het probleem van statelessness dat in het vorige punt is beschreven. Omdat elk server-clientverzoek onafhankelijk is, kan het voorkomen dat een client de server opnieuw om hetzelfde verzoek vraagt, ook al heeft hij dat in het verleden al gedaan. Dit verzoek gaat naar de server, die vervolgens een antwoord geeft, wat het netwerkverkeer verhoogt. De cache is een concept dat aan de clientzijde is geรฏmplementeerd om verzoeken op te slaan die al naar de server zijn verzonden. Als de client dus hetzelfde verzoek opnieuw indient, gaat het niet naar de server, maar haalt het de benodigde informatie uit de cache. Dit vermindert de hoeveelheid netwerkverkeer tussen de client en de server.
- Gelaagd systeem
Het concept van een gelaagd systeem houdt in dat er een extra laag, zoals een middlewarelaag, kan worden ingevoegd tussen de client en de server die de RESTful-webservice host. (In de middlewarelaag wordt alle bedrijfslogica geรฏmplementeerd. Dit kan een extra service zijn waarmee de client communiceert voordat deze de webservice aanroept.) De introductie van deze laag moet echter transparant zijn, zodat de interactie tussen client en server niet wordt verstoord.
- Interface/Uniforme Contract
Dit is de onderliggende techniek van hoe RESTful webservices zouden moeten werken. RESTful werkt in principe op de HTTP-weblaag en gebruikt de onderstaande sleutelwerkwoorden om met resources op de server te werken.
- POST โ Om een โโresource op de server aan te maken.
- GET โ Om een โโbron van de server op te halen.
- PUT โ Om de status van een resource te wijzigen of bij te werken.
- VERWIJDEREN โ Om een โโbron van de server te verwijderen.
REST versus SOAP: Belangrijkste verschillen
Ontwikkelaars wegen REST vaak af tegen SOAP bij het ontwerpen van een webservice. Beide maken communicatie tussen gedistribueerde applicaties mogelijk, maar ze verschillen sterk in filosofie. REST is een architectuurstijl die gebruikmaakt van eenvoudige HTTP-werkwoorden en lichtgewicht formaten zoals JSON, terwijl SOAP SOAP is een strikt protocol dat gebruikmaakt van XML-enveloppen en een formele contracDe onderstaande tabel vat de belangrijkste verschillen samen.
| Aspect | REST | SOAP |
|---|---|---|
| Type | Architectural stijl | Strikt protocol |
| Data formaat | JSON, XML, platte tekst, HTML | Alleen XML |
| Transport | Alleen HTTP | HTTP, SMTP, TCP en andere |
| Land | stateless | Staatloos of staatsgebonden |
| Prestaties | Sneller en lichter | Zwaarder vanwege de overhead van XML. |
| Best voor | Web-, mobiele en openbare API's | Bedrijfsapplicaties die strikte beveiliging vereisen |
In de praktijk is REST de standaardkeuze voor openbare web- en mobiele API's omdat het sneller en gemakkelijker te gebruiken is, terwijl SOAP nuttig blijft voor bedrijfssystemen die ingebouwde beveiliging en formele configuratie vereisen.tracts.
Creรซer uw eerste Restful-webservice in ASP.NET
In deze REST API-tutorial leren we hoe je een RESTful webservice maakt in ASP.NET.
Webservices kunnen in diverse programmeertalen worden ontwikkeld en veel geรฏntegreerde ontwikkelomgevingen kunnen worden gebruikt om REST-gebaseerde services te creรซren.
In dit RESTful API-voorbeeld gaan we onze REST-applicatie maken in .NET met behulp van Visual Studio. We gaan een RESTful-webservice maken die werkt met de onderstaande gegevens.
De onderstaande dataset is een voorbeeld van een REST API van een bedrijf dat de tutorials beschikbaar stelt die ze op basis van Tutorialid hebben gemaakt.
| Handleiding | Naam van zelfstudie |
|---|---|
| 0 | arrays |
| 1 | wachtrijen |
| 2 | Stacks |
In ons voorbeeld van de REST API-tutorial gaan we de onderstaande RESTful-werkwoorden implementeren.
- KRIJG zelfstudie Wanneer een client deze RESTful API aanroept, krijgt hij of zij de volledige set tutorials te zien die beschikbaar zijn via de webservice.
- KRIJG zelfstudie/tutoriallid โ Wanneer een client deze RESTful API aanroept, krijgt hij de naam van de tutorial te zien op basis van de Tutorialid die door de client is verzonden.
- POST-zelfstudie/zelfstudienaam โ Wanneer een client deze RESTful API aanroept, dient de client een verzoek in om een โโtutorialnaam in te voegen. De webservice voegt de ingediende tutorialnaam vervolgens toe aan de verzameling.
- VERWIJDER Tutorial/Tutorialid โ Wanneer een client deze RESTful API aanroept, dient de client een verzoek in om een โโtutorialnaam te verwijderen op basis van de tutorial-ID. De webservice verwijdert vervolgens de ingediende tutorialnaam uit de verzameling.
Laten we de onderstaande stappen volgen om onze eerste RESTful webservice te creรซren, die de bovenstaande implementatie uitvoert.
Hoe u uw eerste rustgevende webservice kunt maken
Stap 1) Maak een nieuw project.
De eerste stap is het maken van een leeg bestand Asp.Net Webapplicatie. Klik in Visual Studio 2013 op de menuoptie Bestand->Nieuw project.
Zodra je op de optie 'Nieuw project' klikt, toont Visual Studio een nieuw dialoogvenster waarin je het projecttype kunt kiezen en de benodigde gegevens kunt invoeren. Dit wordt in de volgende stap uitgelegd.
Stap 2) Voer de projectnaam en locatie in.
- Zorg ervoor dat u eerst de C# Websjabloon voor de ASP.NET-webtoepassing. Het project moet van dit type zijn om een โโwebserviceproject te kunnen maken. Door deze optie te kiezen, voert Visual Studio de nodige stappen uit om de vereiste bestanden voor elke webtoepassing toe te voegen.
- Geef je project een naam, in ons geval is dat "Webservice.REST".
- Geef vervolgens een locatie op waar de projectbestanden worden opgeslagen.
Zodra dit is voltooid, ziet u het aangemaakte projectbestand in de Solution Explorer van Visual Studio 2013.
Stap 3) Maak het webservicebestand.
De volgende stap is het aanmaken van het webservicebestand dat de RESTful webservice zal bevatten.
- Klik eerst met de rechtermuisknop op het projectbestand, zoals hieronder weergegeven.
- In deze stap,
- Klik met de rechtermuisknop op het projectbestand.
- Kies de optie "Toevoegen -> Nieuw item".
In het dialoogvenster dat verschijnt, moet u het volgende doen.
- Kies de optie WCF-service (met Ajax-ondersteuning). Als u een bestand van dit type kiest, voegt Visual Studio basiscode toe waarmee u een RESTful-webservice kunt maken. WCF staat voor Windows Communicatie FoundationWCF is een bibliotheek waarmee applicaties van verschillende platformen (of hetzelfde platform) met elkaar kunnen communiceren via verschillende protocollen zoals TCP, HTTP en HTTPS. Ajax is asynchroon. JavaScript en XML. AJAX zorgt ervoor dat webpagina's asynchroon worden bijgewerkt door kleine hoeveelheden data achter de schermen uit te wisselen met de server.
- Geef vervolgens een naam aan de service, in ons geval TutorialService.
- Klik ten slotte op de knop Toevoegen om de service aan de oplossing toe te voegen.
Stap 4) Maak een configuratie.
De volgende stap is het aanpassen van de configuratie zodat dit project met RESTful webservices kan werken. Hiervoor is een wijziging nodig in het bestand genaamd Web.configDit bestand verschijnt in hetzelfde venster als het projectbestand van de webservice. Het bestand Web.config bevat alle configuraties die ervoor zorgen dat de webapplicatie naar behoren werkt. De wijziging die wordt aangebracht, stelt de applicatie in staat om gegevens te verzenden en te ontvangen als een pure RESTful webservice.
- Klik op het bestand Web.config om de code te openen.
- Zoek de lijn .
- Wijzig de regel naar .
Stap 5) Voeg onze code toe voor implementatie.
De volgende stap is het toevoegen van onze implementatiecode. Alle onderstaande code moet in het bestand TutorialService.svc worden geschreven.
- De eerste stap is het toevoegen van code om onze data weer te geven, die we in ons programma zullen gebruiken. We gaan dus een lijst met stringvariabelen hebben met de waarden "Arrays", "Queues" en "Stacks". Dit vertegenwoordigt de namen van de tutorials die beschikbaar zijn via onze hostingdienst.
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"});
Stap 6) Definieer de code voor onze GET-methode.
Vervolgens definiรซren we de code voor onze GET-methode. Deze code komt ook in hetzelfde bestand TutorialService.svc te staan. Deze code wordt uitgevoerd telkens wanneer we de service vanuit onze browser aanroepen.
De onderstaande methode zal worden gebruikt om het onderstaande scenario te realiseren.
- Als een gebruiker een lijst wil van alle beschikbare tutorials, dan moet de onderstaande code worden geschreven om dit te bereiken.
[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 Uitleg:-
- De eerste regel code is het belangrijkst. Deze wordt gebruikt om te definiรซren hoe we deze methode kunnen aanroepen via een URLDus, als de link naar onze webservice is http://localhost:52645/TutorialService.svc en we voegen '/Tutorial' toe aan de URL, als in http://localhost:52645/TutorialService.svc/TutorialDe bovenstaande code wordt dan uitgevoerd. Het attribuut 'WebGet' is een parameter waarmee deze methode een RESTful-methode kan zijn, zodat deze via het GET-verzoek kan worden aangeroepen.
- Dit codegedeelte wordt gebruikt om onze lijst met strings in de 'lst'-variabele te doorlopen en ze allemaal terug te sturen naar het oproepende programma.
Stap 7) Retourneer de uitvoer.
De onderstaande code zorgt ervoor dat als er een GET-aanroep naar de Tutorial-service wordt gedaan met een Tutorial-ID, de bijbehorende tutorialnaam wordt geretourneerd op basis van de Tutorial-ID.
[WebGet(UriTemplate = "/Tutorial/{Tutorialid}")] public String GetTutorialbyID(String Tutorialid) { int pid; Int32.TryParse(Tutorialid, out pid); return lst[pid]; }
Code Uitleg:-
- De eerste regel code is het belangrijkst. Deze definieert hoe we deze methode kunnen aanroepen via een URLDus, als de link naar onze webservice is http://localhost:52645/TutorialService.svc en we voegen '/Tutorial/{Tutorialid}' toe aan de URL, dan zouden we de webservice kunnen aanroepen als http://localhost:52645/TutorialService.svc/Tutorial/1Bijvoorbeeld. De webservice zou dan de naam van de tutorial retourneren die het tutorial-ID 1 had.
- Dit codefragment wordt gebruikt om de naam van de tutorial terug te geven die overeenkomt met de tutorial-ID die aan de webmethode is doorgegeven.
- Standaard moet men onthouden dat alles wat aan de wordt doorgegeven, van toepassing is. URL In de browser staat een tekenreeks.
- Maar je moet niet vergeten dat de index van onze lijst een geheel getal moet zijn, dus voegen we de nodige code toe om de Tutorialid eerst naar een geheel getal te converteren.
- Vervolgens gebruiken we het om de indexpositie in onze lijst op te vragen en de waarde dienovereenkomstig terug te geven aan het aanroepende programma.
Stap 8) Schrijf de code voor de POST-methode.
De volgende stap is het schrijven van de code voor onze POST-methode. Deze methode wordt aangeroepen wanneer we een tekenreeks aan onze lijst met tutorials willen toevoegen via de POST-methode. Als je bijvoorbeeld de tutorialnaam "Softwaretesten" wilt toevoegen, moet je de POST-methode gebruiken.
[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "/Tutorial/{str}")] public void AddTutorial(String str) { lst.Add(str); }
Code Uitleg:-
- De eerste regel is het 'WebInvoke'-attribuut, dat aan onze methode is toegevoegd. Dit maakt het mogelijk om de methode aan te roepen via een POST-verzoek. De attributen RequestFormat en ResponseFormat moeten als JSON worden opgegeven, omdat waarden die naar een RESTful webservice worden verzonden, in dit formaat moeten zijn.
- De tweede regel code wordt gebruikt om de tekenreeks die via de POST-aanroep is doorgegeven, toe te voegen aan onze bestaande lijst met voorbeeldteksten.
Stap 9) Voeg een methode toe om de DELETE-bewerking af te handelen.
Ten slotte voegen we onze methode toe om de DELETE-bewerking af te handelen. Deze methode wordt aangeroepen wanneer we een bestaande tekenreekswaarde uit onze lijst met tutorials willen verwijderen met behulp van de DELETE-methode.
[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 Uitleg:-
- De eerste regel is het 'WebInvoke'-attribuut, dat aan onze methode is gekoppeld. Dit maakt het mogelijk om de methode aan te roepen via de DELETE-aanroep. De attributen RequestFormat en ResponseFormat moeten als JSON worden opgegeven, omdat de waarden in dit formaat moeten zijn. Merk op dat de parameter Method is ingesteld op "DELETE". Dit betekent dat deze methode wordt aangeroepen wanneer we de DELETE-aanroep gebruiken.
- De tweede coderegel wordt gebruikt om de Tutorialid die via de DELETE-oproep is verzonden, te nemen en vervolgens die ID uit onze lijst te verwijderen. (De Int32 De functie in de code wordt gebruikt om de tutorial-ID van een stringvariabele naar een integer om te zetten.
Uw eerste Restful-webservice uitvoeren
Nu we in het bovenstaande gedeelte onze complete webservice hebben gemaakt, gaan we kijken hoe we de Tutorial-service kunnen uitvoeren, zodat deze door elke client kan worden aangeroepen.
Om de webservice te starten, volg je de onderstaande stappen.
Stap 1) Klik met de rechtermuisknop op het projectbestand โ Webservice.REST.
Stap 2) Kies de menuoptie 'Instellen als opstartproject'. Hiermee zorgt u ervoor dat dit project wordt uitgevoerd wanneer Visual Studio de volledige oplossing uitvoert.
Stap 3) De volgende stap is het uitvoeren van het project zelf. Afhankelijk van de standaardbrowser die op het systeem is geรฏnstalleerd, verschijnt de naam van de betreffende browser naast de knop 'Uitvoeren' in Visual Studio. In ons geval hebben we... Google Chrome verschijnen. Klik gewoon op deze knop.
Uitgang: -
Wanneer het project wordt uitgevoerd, kunt u naar de sectie TutorialService.svc/Tutorial navigeren, waar u de onderstaande uitvoer te zien krijgt.
In de bovenstaande uitvoer,
- Je kunt zien dat de browser het 'GET'-verzoek aanroept en de 'GetAllTutorial'-methode in de webservice uitvoert. Deze module wordt gebruikt om alle tutorials weer te geven die door onze webservice beschikbaar worden gesteld.
Uw eerste Restful-webservice testen
In het bovenstaande gedeelte hebben we al gezien hoe je de browser kunt gebruiken om het 'GET'-commando uit te voeren en 'GetAllTutorial' aan te roepen.
- Laten we nu de browser gebruiken om het volgende use case-scenario uit te voeren.
GET Tutorial/Tutorialid โ Wanneer een client deze RESTful API aanroept, krijgt deze de naam van de tutorial op basis van de Tutorialid die door de client is verzonden.
Voeg in uw browser de tekenreeks /1 toe na het woord Tutorial in de URLAls je op de enter-toets drukt, krijg je de onderstaande uitvoer te zien.
Nu ziet u de uitvoer "Queues", wat overeenkomt met nummer 1 in onze lijst met tutorialstrings. Dit betekent dat de methode 'GetTutorialbyID' nu wordt aangeroepen vanuit onze webservice. Het laat ook zien dat de waarde 1 succesvol via de browser wordt doorgegeven aan onze webservice en aan onze methode, en dat is de reden waarom we de correcte waarde van "Queues" in de browser krijgen.
- Laten we vervolgens onze webservice gebruiken door het onderstaande scenario uit te voeren. Hiervoor moet u de tool genaamd installeren. Fiddler, wat een gratis te downloaden tool is.
POST Tutorial/Tutorialnaam โ Wanneer een client deze RESTful API aanroept, dient de client een verzoek in om een โโtutorialnaam in te voegen. De webservice voegt de ingediende tutorialnaam vervolgens toe aan de verzameling.
Voer de ... uit Fiddler Gebruik het gereedschap en voer de onderstaande stappen uit.
- Ga naar het gedeelte 'Componist'. Hier maak je verzoeken aan die je naar elke webapplicatie kunt versturen.
- Zorg ervoor dat het verzoektype "POST" is en dat de juiste gegevens correct zijn. URL wordt geraakt, wat in ons geval zou moeten zijn http://localhost:52645/TutorialService.svc/Tutorial.
- Zorg ervoor dat het Content-Type is ingesteld op application/json. Houd er rekening mee dat onze POST-methode in onze webservice alleen JSON-data accepteert, dus we moeten ervoor zorgen dat dit is gespecificeerd wanneer we een verzoek naar onze applicatie sturen.
- Tot slot moeten we onze gegevens invoeren. Vergeet niet dat onze POST-methode een parameter genaamd 'str' accepteert. Hier specificeren we dus dat we een waarde genaamd "Trees" willen toevoegen aan onze verzameling tutorialnamen en ervoor zorgen dat deze wordt gekoppeld aan de variabelenaam 'str'.
Klik ten slotte op de knop 'Uitvoeren' in FiddlerDit stuurt een verzoek naar de webservice om de gegevens "Trees" via POST naar onze webservice te verzenden.
Als we nu naar de handleiding gaan, URL Om alle strings in onze tutoriallijst weer te geven, zie je dat de waarde "Trees" er ook tussen staat. Dit toont aan dat het POST-verzoek aan de webservice succesvol is uitgevoerd en dat de string succesvol aan onze tutoriallijst is toegevoegd.
- Laten we vervolgens onze webservice gebruiken door het onderstaande scenario uit te voeren. Hiervoor moeten we ook de volgende code gebruiken: Fiddler en vermijd negatieve reviews.
DELETE Tutorial/TutorialID โ Wanneer een client deze RESTful API aanroept, dient de client een verzoek in om een โโtutorialnaam te verwijderen op basis van de tutorial-ID. De webservice verwijdert vervolgens de ingediende tutorialnaam uit de verzameling.
Voer de ... uit Fiddler Gebruik het gereedschap en voer de onderstaande stappen uit.
- Ga naar het gedeelte 'Componist'. Hier maak je verzoeken aan die je naar elke webapplicatie kunt versturen.
- Zorg ervoor dat het verzoektype 'VERWIJDEREN' is en dat de juiste gegevens correct zijn. URL wordt geraakt, wat in ons geval zou moeten zijn http://localhost:52645/TutorialService.svc/TutorialZorg ervoor dat de ID die gebruikt wordt om een โโtekenreeks in de lijst te verwijderen, via de wordt verzonden. URL als parameter. In ons REST-voorbeeld sturen we 1, dus hiermee wordt de 2 verwijderd.nd element in onze collectie, namelijk "Wachtrijen".
Klik ten slotte op de knop 'Uitvoeren' in FiddlerDit stuurt een verzoek naar de webservice om de gegevens "Queues" van onze webservice te VERWIJDEREN.
Als we nu naar de handleiding gaan, URL Om alle strings in onze tutoriallijst weer te geven, zult u merken dat de waarde "Queues" niet meer aanwezig is.
Dit toont aan dat het DELETE-verzoek aan de webservice succesvol is uitgevoerd. Het element op indexnummer 1 in onze lijst met voorbeeldteksten is succesvol verwijderd.
Best practices voor RESTful API's
Het bouwen van een werkende REST API is slechts de eerste stap; het bouwen van een API die schaalbaar en onderhoudbaar blijft, vereist discipline. De onderstaande werkwijzen helpen uw endpoints voorspelbaar, veilig en gemakkelijk toegankelijk te houden voor andere ontwikkelaars en AI-agenten.
- Gebruik zelfstandige naamwoorden, geen werkwoorden, in URLs. Eindpunten zoals /werknemers/1 zijn duidelijker dan /getEmployee?id=1, omdat het HTTP-werkwoord de actie al beschrijft.
- Geef zinvolle statuscodes terug. Verzend 200 voor succes, 201 voor een aangemaakte resource, 400 voor een ongeldig verzoek, 401 voor ongeautoriseerde toegang, 404 voor een ontbrekende resource en 500 voor serverfouten.
- Versiebeheer van uw API. Het toevoegen van een versie-segment zoals /v1/ Met dit pad kunt u de service verder ontwikkelen zonder bestaande klanten te hinderen.
- Beveilig elk eindpunt. Gebruik HTTPS, samen met API-sleutels of OAuth 2.0-tokens, en valideer alle binnenkomende invoer.
- Ondersteuning voor paginering en filtering. Het retourneren van grote collecties in pagina's zorgt voor snelle reactietijden en vermindert de serverbelasting.
Door deze conventies te volgen, wordt uw RESTful webservice intuรฏtief te integreren, of de gebruiker nu een mobiele app, een partnersysteem of een geautomatiseerde AI-workflow is.




























