web services tutorial
In deze zelfstudie over webservices worden de architectuur, typen en componenten van een webservice uitgelegd, samen met belangrijke terminologieën en de verschillen tussen SOAP en REST:
In deze Voltooi de serie API-testtutorials , hebben we er alles over onderzocht API-testen in onze vorige tutorial. Doorloop deze tutorial om vertrouwd te raken met WSDL en UDDI en hoe ze een webservice opslaan en definiëren.
In deze tutorial wordt ook uitgelegd hoe webservices intern werken wanneer een clienttoepassing een verzoek doet. WSS, een ander zeer belangrijk concept van SOAP-services, wordt hier ook uitgelegd.
Wat je leert:
Belangrijke terminologieën bij het testen van webservices
Voordat we beginnen met het verkennen van Webservices, moeten we bekend zijn met de belangrijke termen die worden gebruikt bij het testen van webservices.
Laten we beginnen!!
# 1) Interoperabiliteit
Webservices ondersteunen 'One Code Different Applications'. Dit betekent één generieke code voor alle applicaties op verschillende platforms.
Interoperabiliteit is dus het proces dat het mogelijk maakt dat meerdere applicaties communiceren met de andere applicaties die zich op een ander platform bevinden.
# 2) Authenticatie en autorisatie
Deze worden voornamelijk gebruikt in SOAP-webservices. In algemene termen betekent authenticatie iets valideren, terwijl autorisatie betekent dat je ergens toegang toe hebt / hebt.
Bijvoorbeeld - Als ik een Facebook-pagina heb, kan ik worden behandeld als een geverifieerde gebruiker van Facebook. Als je het recht hebt om mijn foto's op Facebook te bekijken, dan ben je een geautoriseerde gebruiker.
Door deze twee te combineren, kunnen we zeggen: 'Alle geverifieerde gebruikers die toegang hebben tot de bronnen, staan bekend als geautoriseerde gebruikers voor die bronnen.'
Hetzelfde gebeurt in Web Services, d.w.z. het gebruikers-ID en het wachtwoord dat wordt gebruikt om het token te genereren, dekt het authenticatiegedeelte en dit token dat zal worden gebruikt bij het verzenden van een verzoek naar de webserver om het autorisatiegedeelte te dekken.
# 3) Losjes gekoppelde architectuur
Webservices zijn gebaseerd op Loosely Coupled Architecture. Dit betekent dat de interfaces van Web Services dynamisch van aard zijn (veranderingen gedurende een bepaalde tijdlijn). Maar de clientlogica hoeft niet per se te veranderen tijdens de interactie met de service.
Dit vergemakkelijkt de integratie van meerdere software op een efficiëntere manier. Als het een Tightly Coupled Architecture was, dan moet elke keer dat de interface verandert, de clientlogica worden gewijzigd om deze met de service te synchroniseren.
# 4) Artefact
Het is een term die in webservices wordt gebruikt om informatie of gegevens aan te duiden. Dit zijn niet de volledige gegevens, maar een stukje informatie dat een URL of URI, contextcode, documentsleutel, een payload of ondersteunende afbeeldingen kan bevatten.
# 5) Eindpunt
Dit is een veel voorkomende term die wordt gebruikt in elk verzoek van de webservice. Dit is de volledige URL die het exemplaar van de webservice treft.
Bijvoorbeeld - https://www.facebook.com/imsaket -> dit is de volledige URL of het eindpunt met facebook.com als URL en 'imsaket' wordt doorgegeven als contextsleutel om een specifiek adres uniek te identificeren.
wat is een .eps-bestand
# 6) Idempotent
Dit is in de client-server-interactie waarbij het niet uitmaakt hoe vaak u de instantie van de service raakt, en de server zal altijd hetzelfde antwoord naar de client retourneren.
# 7) Marshalling en demarshalling
Zoals we weten, is inkapseling een OOPS-principe dat wordt gedefinieerd als het samenvoegen van code en gegevens in één. Hetzelfde gebeurt in SOAP-webservices. Wanneer we gegevens in payload (XML) verpakken of inkapselen om een SOAP-bericht te vormen en naar de server te sturen, wordt dit proces van inkapseling Marshalling genoemd.
Demarshalling is slechts het omgekeerde van Marshalling. De methode voor het decapsuleren of uitpakken van gegevens en code (XML) uit het SOAP-bericht wordt 'Demarshalling' genoemd.
Wat is een webservice?
Zoals eerder besproken, zijn webservices de services die via een netwerk van de ene machine naar de andere worden gestuurd.
Voorbeeld van webservices: AWS (Amazon Web Services) waarmee de online gebruikers de prijzen kunnen zien van verschillende items die op Amazon.com en Amazon.in worden verkocht
Componenten van webservices
Hieronder staan de verschillende componenten van Web Services vermeld.
# 1) ZEEP
Webservices gebruiken het Simple Object Access Protocol (SOAP) dat XML gebruikt als een payload of aanvraagtekst. Dit is een stateful protocol aangezien er geen onafhankelijke methode is voor het specifieke type bewerking.
Alle verzoeken en antwoorden worden tegelijk door XML verzonden en er worden geen onafhankelijke methoden zoals GET, PUT, POST of DELETE expliciet verstrekt.
# 2) WSDL
Dit SOAP-verzoek maakt gebruik van Web Services Description Language (WSDL) dat is een zeer nuttig onderdeel van Web Service.
Dit bepaalt waar de webservice zich daadwerkelijk bevindt en ook het type webservice dat moet worden opgehaald voor een specifiek verzoek. Hierbij wordt gebruik gemaakt van een XML-bestand dat de webservicefunctie beschrijft.
# 3) UDDI
Een ander handig onderdeel is UDDI Dit staat voor Universal Description Discovery and Integration. Er is een serviceprovider die de webservice levert. Daarom wordt deze UDDI voor een bepaalde serviceprovider gebruikt voor het beschrijven, ontdekken en publiceren van die webservices.
UDDI is ervoor verantwoordelijk dat een klant erachter komt (UDDI biedt een opslagplaats voor WSDL) waar het XML-bestand van de WSDL zich bevindt. Dit is hoe een webservice wordt gedefinieerd en beschreven.
# 4) XML-RPC
Het staat voor Extensible Markup Language - Remote Procedure. Een ander zeer belangrijk onderdeel van webservice is XML - RPC, dat verantwoordelijk is voor het verzenden van berichten tussen systemen. Verzoeken en antwoorden zijn in de vorm van XML en worden verzonden / ontvangen via de HTTP POST.
De beste eigenschap van XML-RPC is dat een clienttoepassing die zich op een ander platform bevindt, kan communiceren met een andere server. Er is zoiets als JSON-RPC dat in het laatste deel van het artikel is uitgelegd omdat het geen onderdeel vormt van een webservice.
De architectuur van een webservice
De architectuur van een webservice kan in het volgende diagram worden weergegeven.
Zoals we al weten, omvat een typische webservices-architectuur drie entiteiten, namelijk een client, een webserver en een internet om de bewerking uit te voeren. De operatie is niets anders dan het verzoek en het antwoord in een client-server-architectuur.
Een klant is doorgaans een verzameling van alle toepassingen of softwaresystemen die een webservice aanvragen, waardoor deze een serviceconsument wordt.
Een webserver is een verzameling van alle toepassingen of softwaresystemen die webservices bieden. Elke webservice vereist een netwerk om te presteren en dit resulteert in de derde entiteit genaamd internet.
Dit is slechts een overzicht van de architectuur van een webservice.
Het werkschema van een webservice wordt bepaald door de drie onderstaande componenten.
- Serviceaanvrager (Zoeken ())
- Serviceprovider (publiceren ())
- Serviceregister of opslagplaats (Bind ())
Dit wordt uitgelegd (in detail met diagram) in de architectuur van SOAP Service.
c ++ ongedefinieerde verwijzing naar functie
Soorten webservices
Twee soorten webservices worden hieronder in detail uitgelegd.
# 1) SOAP-service
SOAP-service staat voor Simple Object Access Protocol. SOAP-services zijn stateful services die XML-taal gebruiken om een envelop te vormen. Een SOAP-envelop kan in twee delen worden beschreven, d.w.z. één is een SOAP-header en body , de andere is de protocol gebruikt om SOAP-berichten te verzenden.
Deze SOAP-header bestaat uit authenticatie en autorisatie die toegang verleent. De body valt onder het payload-gedeelte van het verzoek dat WSDL gebruikt om de webservice te beschrijven en het protocol is voornamelijk HTTP (HyperText Transmission Protocol).
Beveiliging van webservices
SOAP-services hebben een SSL-laag (Secure Socket Layer) die verantwoordelijk is voor het vermijden van datalekken tijdens de verzending, en biedt dus codering en decodering.
Ondertussen zijn de SOAP-services veiliger omdat het ook WSS (Web Services Security) heeft, wat garandeert dat er tijdens de communicatie tussen de service en de applicatie geen onthulling plaatsvindt.
Zoals we allemaal weten, heeft elke webservice (in tegenstelling tot de web-API) een netwerk nodig om zijn werking uit te voeren. Daarom wordt het voor webservices nodig om beveiliging te bieden wanneer ze zijn aangesloten op een netwerk. Daarom heeft Web Services drie belangrijke entiteiten om de beveiligingsfactor tijdens berichtoverdracht te dekken.
- Authenticatie en authorisatie (Hierboven al uitgelegd).
- Vertrouwelijkheid: Dit is volledig afhankelijk van de SSL die zorgt voor codering en decodering van de SOAP-envelop.
- Netwerk veiligheid: Dit betekent dat u alle SOAP- en XML-RPC-reacties moet extraheren die u van de server ontvangt. Bijvoorbeeld, Als u een webservicetool zoals POSTMAN of PARASOFT gebruikt, zult u zien dat er onder de HTTP-headermanager een optie is om de waarde van het Content-Type in te stellen. De waarde kan worden ingesteld op de Application / JSON zodat het alle REST zal extraheren (aangezien SOAP-services geen HTTP Header Manager-opties ondersteunen). U kunt dus het content-type: Application / XML doorgeven in een laadvermogen zelf in de vorm van XML. Dit zou ook SOAP en XML-RPC extraheren.
Deze drie factoren zorgen ervoor dat Web Services Security het hoofd kan bieden aan externe aanvallen.
De architectuur van SOAP-service
Elke SOAP-service is afhankelijk van drie entiteiten die uiteindelijk de architectuur van SOAP-service vormen.
- Dienstverlener: Alle softwaresystemen of applicaties die deel uitmaken van of webservice bieden.
- Serviceaanvrager: Alle softwaresystemen of -toepassingen die deel uitmaken van verzoeken om webservice van serviceprovider.
- Serviceregister: Een register of repository waar alle informatie over de webservice wordt geleverd door de serviceprovider. (Al besproken in UDDI)
Uitleg
Deze drie entiteiten werken met elkaar samen om een succesvolle implementatie van webservices uit te voeren. Dit gebeurt in drie fasen. De eerste fase is de Publiceren() fase waarin een serviceprovider alle details over een webservice invoert in een serviceregister of repository.
De tweede fase is Vind() waar een Service Request voornamelijk de clienttoepassing de details over Web Service uit een repository vindt (heeft ook een WSDL XML-bestand). De laatste fase is Verbindend() waarbij de clienttoepassing of de serviceaanvrager synchroniseert met de serviceprovider voor de uiteindelijke implementatie van de webservice.
# 2) RUSTIGE service
REST staat voor Representational State Transfer, wat een Staatloos Onderhoud.
Het wordt Stateless genoemd omdat de webserver geen informatie opslaat over de clientsessie (tijdsduur totdat de clienttoepassing is verbonden en wordt uitgevoerd), wat betekent dat elk verzoektype gemakkelijk wordt behandeld en uitgevoerd met behulp van ingebouwde REST-methoden zoals GET, POST, CUSTOM (PUT), DELETE, HEAD enzovoort.
Deze methoden zijn inderdaad niet aanwezig in SOAP.
Methode of werkwoorden
Elke methode in REST heeft zijn betekenis. Hieronder vindt u de briefing over elk van hen.
- KRIJGEN: Deze methode wordt gebruikt om de informatie op te halen die naar de server is verzonden met behulp van een van de methoden zoals PUT of POST. Dit heeft geen verzoeklichaam. Een succesvolle uitvoering levert 200 antwoordobjecten op.
- POST: Deze methode wordt gebruikt om een document of record te maken met behulp van een verzoektekst, gespecificeerde URL, documentsleutel, contextsleutel, enz. Hetzelfde kan worden opgehaald met de GET-methode. Een succesvolle uitvoering geeft u een antwoord van 201.
- ZETTEN: Dit is onder de CUSTOM-optie die beschikbaar is in POSTMAN of PARASOFT. Deze methode wordt gebruikt om elk document of record bij te werken dat al aanwezig is. Een succesvolle uitvoering geeft u een antwoord van 201 of 200.
- VERWIJDEREN: Deze methode wordt gebruikt om een record te verwijderen. Een succesvolle uitvoering geeft u een antwoord 204 (geen inhoud).
Notitie: De HTTP-responscodes zijn afhankelijk van hoe ontwikkelaars coderen en kunnen soms worden gemanipuleerd. We hebben de algemene responscodes opgesomd die we van elk type methode krijgen.
De architectuur van REST-service
De architectuur van de REST-service is afhankelijk van twee entiteiten, namelijk serviceconsument of aanvrager en serviceprovider. De serviceconsument is degene die gebruik maakt van de webservice en de serviceprovider is de verzameling software of het systeem dat de webservice levert.
De clienttoepassing die doorgaans een serviceconsument is, gebruikt ingebouwde methoden van REST, een URL of URI, een HTTP-versie en een payload (indien ondersteund door de methode).
SOAP versus REST
Hoewel deze twee soorten webservices worden gebruikt om het verzoek en de reactie uit te voeren, zijn ze totaal verschillend in de manier waarop ze werken.
Hun verschillen worden ter referentie vermeld.
- SOAP-envelop kan in de REST worden gebruikt, maar niet omgekeerd. Bijv. Een gebruikerstoken die in SOAP is gemaakt, kan worden doorgegeven in het REST-verzoek onder de HTTP-headermanager -> Autorisatie.
- SOAP is doorgaans veiliger dan REST-services, aangezien SOAP-services behalve SSL ook WSS bieden. Deze SSL is zowel aanwezig in SOAP als in REST.
- SOAP is langzamer dan REST omdat de verwerking van de aanvraag meer tijd in beslag neemt in SOAP vanwege het XML-gegevensformaat. REST maakt gebruik van JSON dat erg licht van gewicht is en het dus sneller maakt.
- SOAP heeft geen ingebouwde methode, maar REST heeft wel GET, PUT, POST, etc.
- SOAP is stateful terwijl REST staatloos is.
- De verzoek- en antwoordinstanties in SOAP ondersteunen alleen het XML-gegevensformaat. In REST ondersteunen de verzoek- en antwoordinstanties vele gegevensindelingen zoals JSON, XML, platte tekst, enz.
Gevolgtrekking
In deze zelfstudie voor webservices worden de architectuur, componenten en typen webservices uitgelegd.
We leerden ook over verschillen tussen SOAP- en REST-services, samen met andere belangrijke concepten en terminologieën met betrekking tot webservices.
We hopen dat deze tutorial je heeft geholpen Web Services te begrijpen !!
wat is de beste mp3-converter
PREV-zelfstudie VOLGENDE zelfstudie
Aanbevolen literatuur
- Python DateTime-zelfstudie met voorbeelden
- Java SWING-zelfstudie: afhandeling van containers, componenten en gebeurtenissen
- Zelfstudie over HTML-injectie: typen en preventie met voorbeelden
- Unix Shell Scripting Tutorial met voorbeelden
- Selenium Find Element By Text Tutorial met voorbeelden
- Python Main Function-zelfstudie met praktische voorbeelden
- Zelfstudie over paarsgewijs testen of testen in alle paren met tools en voorbeelden
- Tutorial voor het testen van configuraties met voorbeelden