web services tutorial
Denna handledning för webbtjänster förklarar arkitekturen, typerna och komponenterna för en webbtjänst tillsammans med viktiga terminologier och skillnaderna mellan SOAP Vs REST:
I denna Komplett API-testhandledningsserie , vi utforskade allt om API-testning i vår tidigare handledning. Gå igenom denna handledning för att bli bekant med WSDL och UDDI och hur de lagrar och definierar en webbtjänst.
Denna handledning kommer också att förklara hur webbtjänster fungerar internt när en klientapplikation gör en begäran. WSS, som är ett annat mycket viktigt koncept för SOAP Services, förklaras också här.
Vad du kommer att lära dig:
Viktiga terminologier vid webbtjänstestning
Innan vi börjar utforska webbtjänster bör vi känna till de viktiga termer som används vid testning av webbtjänster.
Låt oss börja!!
# 1) Interoperabilitet
Webbtjänster stöder “One Code Different Applications”. Det betyder en generisk kod för alla applikationer på olika plattformar.
Således är interoperabilitet den process som underlättar för flera applikationer att kommunicera med de andra applikationerna som finns på en annan plattform.
# 2) Autentisering och auktorisering
Dessa används främst i SOAP Web Services. I allmänna termer betyder autentisering att validera något medan auktorisering innebär att du / har rätt att få tillgång till något.
Till exempel - Om jag har en Facebook-sida kan jag behandlas som en autentiserad användare av Facebook. Medan du har rätt att se mina bilder på facebook är du en auktoriserad användare.
Genom att kombinera dessa två kan vi säga att 'Alla autentiserade användare som har tillgång till resurserna kallas auktoriserade användare för dessa resurser.'
Samma sak händer i Web Services, dvs. användar-id och lösenord som används för att generera token, täcker autentiseringsdelen och denna token som kommer att användas för att skicka en begäran till webbservern täcker auktoriseringsdelen.
# 3) Löst kopplad arkitektur
Webbtjänster är baserade på löst kopplad arkitektur. Detta innebär att gränssnitten för Web Services är dynamiska (förändringar under en viss tidslinje) till sin natur. Men klientlogiken behöver inte nödvändigtvis förändras när den interagerar med tjänsten.
Detta underlättar integrationen av flera program på ett mer effektivt sätt. Om det var en tätt kopplad arkitektur måste klientlogiken ändras varje gång när gränssnittet ändras så att den synkroniseras med tjänsten.
# 4) Artefakt
Det är en term som används i webbtjänster för att beteckna information eller data. Detta är inte hela informationen utan information som kan innehålla en URL eller URI, snabbnyckel, dokumentnyckel, en nyttolast eller stödjande bilder.
# 5) Slutpunkt
Detta är en mycket vanlig term som används i varje begäran från webbtjänsten. Detta är den fullständiga webbadressen som träffar instansen av webbtjänsten.
Till exempel - https://www.facebook.com/imsaket -> detta är den fullständiga URL: en eller slutpunkten som har facebook.com som URL och 'imsaket' skickas som en sammanhangsnyckel för att identifiera en specifik adress.
bästa gratis mp3-nedladdningsapp för Android
# 6) Idempotent
Detta är i klient-server-interaktion där det inte spelar någon roll hur många gånger du träffar instansen av tjänsten, och servern kommer alltid att returnera samma svar till klienten.
# 7) Marshalling och Demarshalling
Som vi vet är inkapsling en OOPS-princip som definieras som att slå ihop kod och data till en. Samma sak händer i SOAP Web Services. När vi slår in eller inkapslar data i nyttolast (XML) för att bilda ett SOAP-meddelande och skickar det till servern kallas denna inkapslingsprocess Marshalling.
Demarshalling är bara det ömsesidiga med Marshalling. Metoden för att avkapsla eller packa upp data och kod (XML) från SOAP-meddelandet kallas ”Demarshalling”.
Vad är en webbtjänst?
Som diskuterats tidigare är webbtjänster de tjänster som fungerar från en maskin till en annan via ett nätverk.
Exempel på webbtjänster: AWS (Amazon Web Services) som gör det möjligt för onlineanvändare att se priserna på olika artiklar som säljs på Amazon.com och Amazon.in
Komponenter av webbtjänster
Nedan listas de olika komponenterna i webbtjänster.
# 1) Tvål
Webbtjänster använder Simple Object Access Protocol (SOAP) som använder XML som nyttolast eller begäran. Det här är en statligt protokoll eftersom det inte finns någon oberoende metod för den specifika typen av operation.
Alla förfrågningar och svar transporteras samtidigt via XML och inga oberoende metoder som GET, PUT, POST eller DELETE tillhandahålls uttryckligen.
# 2) WSDL
Denna SOAP-begäran använder Webbtjänstens beskrivningsspråk (WSDL) vilket är en mycket användbar del av webbtjänsten.
Detta definierar var webbtjänsten faktiskt finns och vilken typ av webbtjänst som ska hämtas för en specifik begäran. Detta använder en XML-fil som beskriver webbtjänstens funktionalitet.
# 3) UDDI
En annan användbar komponent är UDDI . Detta står för Universal Description Discovery and Integration. Det finns en tjänsteleverantör som tillhandahåller webbtjänsten. Följaktligen, för en viss tjänsteleverantör, används denna UDDI för att beskriva, upptäcka och publicera dessa webbtjänster.
UDDI ansvarar för att låta en klient ta reda på (UDDI tillhandahåller ett arkiv för WSDL) var WSDLs XML-fil finns. Således definieras och beskrivs en webbtjänst.
# 4) XML-RPC
Det står för Extensible Markup Language - Remote Procedure. En annan mycket viktig del av Web Service är XML - RPC som ansvarar för att skicka meddelanden över system. Förfrågningar och svar är i form av XML och skickas / tas emot via HTTP POST.
Det bästa med XML-RPC är att en klientapplikation som finns på en annan plattform kan kommunicera med en annan server. Det finns något som heter JSON-RPC som har förklarats i den senare delen av artikeln eftersom det inte utgör en del av en webbtjänst.
Arkitekturen för en webbtjänst
Arkitekturen för en webbtjänst kan avbildas i följande diagram.
Som vi redan vet innefattar en typisk webbtjänstarkitektur tre enheter, dvs. en klient, en webbserver och ett internet för att utföra operationen. Operationen är inget annat än begäran och svaret i en klient-server-arkitektur.
En klient är vanligtvis en uppsättning av alla applikationer eller mjukvarusystem som begär en webbtjänst och därigenom gör den till en servicekonsument.
En webbserver är en uppsättning av alla applikationer eller programvarusystem som tillhandahåller webbtjänster. Varje webbtjänst kräver ett nätverk för att utföra och detta resulterar i den tredje enheten som kallas Internet.
Detta är bara en översikt över arkitekturen hos en webbtjänst.
Arbetsschemat för en webbtjänst definieras av de tre komponenterna som visas nedan.
- Serviceförfrågare (Sök ())
- Tjänsteleverantör (publicera ())
- Tjänsteregister eller förvar (Bind ())
Detta förklaras (i detalj med diagram) i arkitekturen för SOAP Service.
gratis anime-webbplatser att titta på online
Typer av webbtjänster
Två typer av webbtjänster förklaras nedan i detalj.
# 1) SOAP Service
SOAP Service står för Simple Object Access Protocol. SOAP-tjänster är stateful-tjänster som använder XML-språk för att bilda ett kuvert. Ett SOAP-kuvert kan beskrivas i två delar, det vill säga en är en SOAP-rubrik och kropp , den andra är protokoll används för att skicka SOAP-meddelanden.
Denna SOAP-rubrik består av autentisering och auktorisering som ger åtkomst. Kroppen kommer under nyttolastavsnittet i begäran som använder WSDL för att beskriva webbtjänsten och protokollet är huvudsakligen HTTP (HyperText Transmission Protocol).
Säkerhet för webbtjänster
SOAP-tjänster har ett SSL-lager (Secure Socket Layer) som ansvarar för att undvika dataläckage under överföring och därmed ger kryptering och dekryptering.
Under tiden är SOAP-tjänsterna säkrare eftersom det också har WSS (Web Services Security) som garanterar ingen avslöjande under kommunikationen mellan tjänsten och applikationen.
Som vi alla vet behöver varje webbtjänst (till skillnad från webb-API) ett nätverk för att utföra sin verksamhet. Därför blir det nödvändigt för webbtjänster att tillhandahålla säkerhet när de är anslutna till ett nätverk. Därför har webbtjänster tre viktiga enheter som täcker säkerhetsfaktorn vid meddelandeöverföring.
- Autentisering och auktorisering (Redan förklarad ovan).
- Sekretess: Detta är helt beroende av SSL som ger kryptering och dekryptering av SOAP-kuvertet.
- Nätverkssäkerhet: Det betyder att extrahera alla SOAP- och XML-RPC-svar som du får från servern. Till exempel, Om du tar något webbtjänstverktyg som POSTMAN eller PARASOFT, kommer du att upptäcka att det under HTTP-huvudhanteraren finns ett alternativ att ställa in värdet på innehållstypen. Värdet kan ställas in till applikationen / JSON så att den extraherar alla REST (eftersom SOAP-tjänster inte stöder HTTP-huvudhanteringsalternativ). Således kan du skicka innehållstypen: Application / XML i en nyttolast sig själv i form av XML. Detta skulle också extrahera SOAP och XML-RPC.
Dessa tre faktorer utgör webbtjänstsäkerhet för att klara de externa attackerna.
Arkitekturen för tvåltjänst
Varje SOAP-tjänst är beroende av tre enheter som i slutändan utgör SOAP Service-arkitekturen.
- Tjänsteleverantör: Alla mjukvarusystem eller applikationer som ingår i eller tillhandahåller webbtjänster.
- Serviceförfrågan: Alla mjukvarusystem eller applikationer som ingår i begäran om webbtjänst från tjänsteleverantören.
- Tjänsteregister: Ett register eller arkiv där all information om webbtjänster tillhandahålls av tjänsteleverantören. (Redan diskuterat i UDDI)
Förklaring
trådlös nätverkstrafik kan fångas upp med sniffers.
Dessa tre enheter interagerar med varandra för att genomföra en framgångsrik implementering av webbtjänster. Detta görs i tre faser. Den första fasen är Publicera() fas där en tjänsteleverantör matar alla detaljer om en webbtjänst i ett tjänstregister eller förvar.
Den andra fasen är Hitta() där en tjänsteförfrågan huvudsakligen hittar klientapplikationen information om webbtjänsten från ett arkiv (har också WSDL XML-fil). Den sista fasen är Bindande() där klientapplikationen eller tjänsteförfrågan synkroniseras med tjänsteleverantören för den slutliga implementeringen av webbtjänsten.
# 2) RESTful Service
REST står för Representational State Transfer vilket är en Statslös Service.
Det kallas statslöst eftersom webbservern inte lagrar någon information om klientsessionen (tidslängd tills klientapplikationen är ansluten och i körning) vilket innebär att varje begäranstyp behandlas och utförs enkelt med hjälp av REST-inbyggda metoder som GET, POST, CUSTOM (PUT), DELETE, HEAD och så vidare.
Dessa metoder finns faktiskt inte i SOAP.
Metod eller verb
Varje metod i REST har sin betydelse. Nedan ges en sammanfattning om var och en av dem.
- SKAFFA SIG: Denna metod används för att hämta information som skickas till servern med någon av metoderna som PUT eller POST. Detta har inte en begäran organ. Framgångsrik körning ger dig 200 svarobjekt.
- POSTA: Den här metoden används för att skapa ett dokument eller en post med en begärandetext, angiven URL, dokumentnyckel, kontextnyckel, etc. Samma sak kan hämtas med GET-metoden. Framgångsrik körning ger dig ett 201-svar.
- SÄTTA: Detta är under CUSTOM-alternativet som är tillgängligt i POSTMAN eller PARASOFT. Denna metod används för att uppdatera alla dokument eller poster som redan finns. Framgångsrikt utförande ger dig 201 eller 200 svar.
- RADERA: Denna metod används för att radera alla poster. Framgångsrik körning ger dig 204 svar (inget innehåll).
Notera: HTTP-svarskoderna beror på hur utvecklare kodar och kan manipuleras ibland. Vi har listat de vanliga svarkoderna som vi får från varje metodtyp.
Arkitekturen för REST Service
Arkitekturen för REST-tjänsten beror på två enheter, det vill säga servicekonsument eller förfrågare och tjänsteleverantör. Tjänstekonsumenten är den som använder webbtjänsten och tjänsteleverantören är samlingen av programvara eller system som tillhandahåller webbtjänsten.
Klientapplikationen som vanligtvis är en servicekonsument använder inbyggda metoder för REST, en URL eller URI, en HTTP-version och en nyttolast (om den stöds av metoden).
SOAP vs REST
Även om dessa två typer av webbtjänster används för att utföra förfrågan och svaret är de helt olika i sitt sätt.
Deras skillnader listas ned för din referens.
- SOAP-kuvert kan användas i REST men inte tvärtom. T.ex. En användartoken som skapas i SOAP kan skickas i REST-begäran under HTTP-huvudhanteraren -> Auktorisering.
- SOAP är vanligtvis säkrare än REST-tjänster eftersom SOAP-tjänster tillhandahåller WSS förutom SSL. Denna SSL finns både i SOAP och REST.
- SOAP är långsammare än REST eftersom begäran bearbetning tar mer tid i SOAP på grund av XML-dataformat. REST använder JSON som är mycket lättviktad och därmed gör den snabbare.
- SOAP har ingen inbyggd metod men REST har GET, PUT, POST etc.
- SOAP är statligt medan REST är statslös.
- Begäran och svarsorganen i SOAP stöder endast XML-dataformatet. I REST stöder begäran och svarsorgan många dataformat som JSON, XML, vanlig text, etc.
Slutsats
Denna handledning för webbtjänster förklarar arkitekturen, komponenterna och typerna av webbtjänster.
Vi lärde oss också om skillnader mellan SOAP- och REST-tjänster, tillsammans med andra viktiga begrepp och terminologier relaterade till webbtjänster.
Vi hoppas att den här guiden hjälpte dig att förstå webbtjänster !!
PREV-handledning | NÄSTA självstudie
Rekommenderad läsning
- Python DateTime-handledning med exempel
- Java SWING-handledning: Container, komponenter och händelsehantering
- HTML-injektionshandledning: Typer och förebyggande med exempel
- Unix Shell Scripting Tutorial med exempel
- Selen Find Element by Text Tutorial med exempel
- Pythons huvudfunktionshandledning med praktiska exempel
- Parvis testning eller testning av alla par testhandledning med verktyg och exempel
- Konfigurationstesthandledning med exempel