Het is ook mogelijk om een externe service aan te roepen door middel van een HTTP request. Selecteer hiervoor de optie GetHttpRequest in het linker paneel van de tab 'Verzamelen'.
Klik op de button ‘Toevoegen’ wanneer alle benodigde informatie voor het request in de volgende blokken ingevoerd zijn:
Algemeen
Voer hier als eerste stap een logische en beschrijvende naam in voor de het request , in waaruit het duidelijk wordt welke data er opgehaald wordt opgehaald. Vervolgens geef je aan wat kun je aangeven of je gebruik wilt maken van een Basis request dat je in de huidige omgeving gedefinieerd hebt. Daarna dient nog de methode voor de request is. Dit kan het request geselecteerd te worden (bijvoorbeeld GET, POST of PUT zijn.
In het URL veld voer je de url in voor de request dat je uit wil voeren. Wanneer je op het invoerveld voor de url klikt opent een popup, hier kan je tussen quotes (““) de url voor je request invoeren.
Een voorbeeld van een url is als volgt:
Code Block | ||
---|---|---|
| ||
"https://mocki.io/v1/users" |
In de volgende stap kan je headers toevoegen aan je request. Vaak heeft een request een vorm van authorization nodig, deze headers kan je hier invoeren. Wanneer je op de velden voor Key of Value klikt zal er een popup openen waar de waarde ingevuld kan worden. Ook hier dient de waarde tussen quotes ingevuld te worden.
Een voorbeeld van headers:
Key
Code Block |
---|
"Authorization" |
Value
Code Block |
---|
"bearer sasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdf" |
Het is ook mogelijk om de waarde uit een parameter, bijvoorbeeld voor een bearer token, toe te voegen aan je header. Vb: een parameter met de naam ‘BearerToken’ is aangemaakt en gevuld, dan is deze op de volgende manier te gebruiken in je header:
Code Block |
---|
"bearer " + Parameter!BearerToken.Value |
Note: als je in een invoerveld de naam van een parameter begint te typen, zal er automatisch gezocht worden of de parameter bestaat. Als de parameter bestaat zal deze tevoorschijn komen als suggestie, druk op Tab op je toetsenbord om de voorgestelde parameter te selecteren.
Daarnaast kan je nog een body of een JSON schema toevoegen aan je request.
In alle invoervelden is het ook mogelijk om waarden uit parameters te gebruiken. Hierdoor kan je bijvoorbeeld een url of toegangstoken in de paramters specificeren, zodat je op meerdere plekken makkelijk kan wisselen.
Als je de request helemaal opgebouwd hebt klik je op ‘Toevoegen’. Als alles correct is zal de request verschijnen in het rechter paneel. Ook hier kan je weer de data downloaden om te controleren of alles goed is gegaan. Als er een fout optreedt zal de request niet in het rechter paneel verschijnen. Dit is het teken dat er iets nog niet goed gaat in de request.
Soap request
Het is ook mogelijk om een SOAP request uit te voeren. Hiervoor kies je bij het veld ResultType voor SOAP/XML.
Selecteer POST als methode voor de request. Voer in het veld URL de url in waar naartoe je je request wil uitvoeren. Let erop dat je de waarde van de url tussen quotes zet.
Voor de body voer je de body in die je mee wil sturen met je request. Het is belangrijk dat je je body als variabele definieert. Dit doe je op de volgende manier:
Code Block | ||
---|---|---|
| ||
var = "<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:hol='http://www.holidaywebservice.com/HolidayService_v2/'>
<soapenv:Header/>
<soapenv:Body>
<hol:GetCountriesAvailable/>
<Filter>
<mil:continent></mil:continent>
</Filter>
</soapenv:Body>
</soapenv:Envelope>"
var |
Je begint de body met var = ““. Tussen de quotes komt de body van je request te staan. Let op dat in de body ook quotes kunnen voorkomen, bijvoorbeeld bij een url. Zorg ervoor dat de quotes in je body niet dezelfde quotes zijn als de quotes die om je body heen staan. Als er rondom de body dubbele quotes (“ “) gebruikt worden, gebruik dan in je body enkele quotes (' '). Omgekeerd geldt hetzelfde, gebruik dubbele quotes in de body als er rondom de body enkele quotes gebruikt worden.
De headers kan je op dezelfde manier toevoegen als bij een normaal request.
Als je een body mee wil sturen dien je ook de regel ‘XML Selecteer path’ in te vullen. Hiervoor geldt meestal de waarde:
Code Block |
---|
"{http://schemas.xmlsoap.org/soap/envelope/}Body" |
Het hangt van je verwachte response af wat je voor XML Selecteer path in moet vullen. In principe geef je aan vanaf welke node je het resultaat terug wil krijgen. Meestal zit binnen je Body de content die je daadwerkelijk op wil halen, door dus pas vanaf Body de content op te halen krijg je niet een hoop onnodige content mee. Let erop dat je de quotes om de waarde ook invoert in het invoerveld.
Er is ook nog de mogelijkheid om een XML onderdeel te verwijderen, ook dit is om onnodige content uit te filteren. Een voorbeeld hiervan is om bijvoorbeeld een schema uit je respons te filteren. Dit kan je invullen bij het invulveld ‘XML verwijder onderdeel’.
Als je de request helemaal opgebouwd hebt klik je op ‘Toevoegen’. Als alles correct is zal de request verschijnen in het rechter paneel. Ook hier kan je weer de data downloaden om te controleren of alles goed is gegaan. Als er een fout optreedt zal de request niet in het rechter paneel verschijnen. Dit is het teken dat er iets nog niet goed gaat in de request) en de te gebruiken URL dien ingegeven te worden.
Info |
---|
Indien je gebruik maakt van een Basis request zal de Basis URL die daarbij hoort weergegeven worden. Deze zal als prefix aan de opgegeven URL gekoppeld worden. |
...
Certificate
In sommige gevallen eisen externe applicaties dat er een certificaat gebruikt wordt bij het aanroepen van de API. In dit blok kun je de certificaat parameter selecteren die je eerder bij de tab Parameters gedefinieerd hebt.
...
Overige aanvraag
In dit blok kan overige informatie (Headers en Body) die nodig is om het API-request uit te voeren opgegeven worden.
Info |
---|
Indien je gebruik maakt van een Basis request zullen de headers (inclusief eventueel authenticatie token) ook weergegeven worden. |
...
Iedere Iteratie/Loop
Sommige APis geven niet direct alle data terug. Hiervoor zijn dan meerdere aanvragen nodig. Voorbeelden hoe dit toegpast kan worden staan beschreven in Bron data in segmenten ophalen.
Resultaat
In dit blok kan informatie m.b.t. het resultaat aangegeven worden.
...
Afhankelijk van de gekozen optie bij ResultType (JSON of SOAP/XML) worden er specifieke aanvullende velden getoond.
Indien het resulttype JSON is worden de volgende velden getoond:
JSON uitklappen tot nivo
Indien het resultaat een geneste JSON is kun je hier aangeven tot welk nivo de JSON uitgeklapt moet worden. Overige (diepere) nivo’s zullen als JSON string getoond worden.JSON selecteer path
Dit zorgt er voor dat slechts een deel van de JSON uitgelezen wordt. Stel je voor dat he van de externe service de volgende JSON terug krijgt
Code Block | ||
---|---|---|
| ||
{
'Stores': [
'Lambton Quay',
'Willis Street'
],
'Manufacturers': [
{
'Name': 'Acme Co',
'Products': [
{
'Name': 'Anvil',
'Price': 50
}
]
},
{
'Name': 'Contoso',
'Products': [
{
'Name': 'Elbow Grease',
'Price': 99.95
},
{
'Name': 'Headlight Fluid',
'Price': 4
}
]
}
]
} |
Ophalen alleen de Manufacturers, gebruik dan als JSON selecteer path:
Code Block | ||
---|---|---|
| ||
Manufacturers |
Meer informatie kan gevonden worden op kan online gezocht worden op “JSONPath”.
JSON Schema
Het kan voorkomen dat de JSON structuur die door de API aangeleverd wordt niet altijd dezelfde structuur heeft doordat in de andere applicatie niet alle informatie aanwezig is. Door een JSON schema te gebruiken kun je aangeven welke velden verwacht worden, zodat je die (ook als ze niet aangeleverd zijn) toch tot je beschikking hebt in de koppeling. Je kunt zelf een schema genereren online door een tool op te zoeken die dit doet (zoek online op “json to schema“).
Wanneer het resulttype SOAP/XML is worden de volgende velden getoond:
...
XML Selecteer path
Het kan zijn dat je niet het volledige SOAP/XML resultaat als bron wilt gebruiken. In dat geval kun je hier het path opgeven vanaf waar je het wilt gebruiken. Dit kan iets zijn als “books” bijvoorbeeld.XML verwijder onderdeel
Indien er in het resultaat dat je als bron wilt gebruiken toch nog een onderdeel zit dat je eruit gefilterd wilt hebben kun je hier het path opgeven dat je verwijderd wilt hebben. Dit kan iets zijn als “books” bijvoorbeeld.
Voor elk ResultType (JSON of SOAP/XML) worden de volgende velden getoond:
Geef leeg resultaat bij foutief request
Sommige API’s geven als er geen resultaat is een andere response waardoor het ophalen van de bron data faalt. Door deze checkbox aan te zetten zal er in dat soort situaties een lege dataset teruggegeven worden.