Een API testen met Python en JavaScript

Een API testen met Python en JavaScript

Het is een dunne lijn tussen het kiezen van een Application Programming Interface (API) en beslissen of je ermee kunt werken of niet. De meeste REST-API's hebben een generieke architectuur en hebben een gemeenschappelijk verzoekpad. Maar sommige API's wijken af ​​van de standaard. Daardoor worden ze moeilijk te gebruiken.

Dus voordat u uw volledige software op een API bouwt, moet u kwaliteitscontroles uitvoeren en ervoor zorgen dat het goed werkt. Dus wat is API-testen en hoe kunt u een API testen?

Wat is API-testen?

API-testen omvatten de eerste beoordeling van de functionaliteit, beveiliging, schaalbaarheid, snelheid en meer van een API om te zien of het ideaal is voor het programma dat het wil gebruiken. Maar oppervlakkig gezien kan het testen inhouden om te zien of het de juiste antwoorden verzendt wanneer u verzoeken doet via de verschillende eindpunten.

Afhankelijk van de structuur, doe je tijdens het testen van een API verzoeken (Get, Post, Update of Delete) naar de relevante eindpunten. Er zijn veel statistieken om te controleren tijdens API-tests. Maar op beginnersniveau wil je de integriteit van een API valideren aan de hand van de statuscode en ervoor zorgen dat deze de juiste gegevens ophaalt en accepteert.

Daartoe kan een API, zoals elk webverzoek, de 200, 400 of 500 statuscode of zelfs andere retourneren.

De meeste API's gebruiken JSON-reacties om hun payloads te bedienen. Afhankelijk van het doel kunnen anderen de payloads XML, multipart of HTML accepteren en erop reageren.

Een API testen met Python en JavaScript

Hoewel er veel grafische gebruikersinterface (GUI) API-testtools op internet zijn, kunt u een API kritischer beoordelen met geschreven scripts.

Een API vertelt in zijn documentatie het soort verzoeken dat het toestaat en biedt relevante eindpunten voor hen. U kunt ze dus pakken en testen met behulp van de juiste aanvraagmethoden.

Gerelateerd: Wat is REST API en hoe kunt u gegevens voor uw app of website verzamelen?

In tegenstelling tot de eigenlijke productiefase, is API-testen grof. U hebt dus niet zoveel specificiteit nodig als bij het uitvoeren van de API voor productie. Hoewel er verschillende soorten API-tests zijn, zullen we ons in dit artikel meer richten op responsvalidatietests.

We zullen een testen nep-winkel API in deze tutorial met behulp van JavaScript's te halen en Python's verzoeken bibliotheek. Terwijl we dit doen, testen we eindpunten voor het ophalen, plaatsen, bijwerken en verwijderen van gegevens.

Een Get API-eindpunt testen met JavaScript

Zoals u het in productie zou gebruiken, kunt u een API in JavaScript testen met behulp van Axios of de fetch- methode.

Om de antwoordstatus van de API op te halen met fetch :

fetch('https://fakestoreapi.com/products', ).then(res =>{ console.log(res) })

Het bovenstaande verzoek retourneert een 200-status als het een geldig antwoord is. Nadat u een succesvolle aanvraag heeft gedaan, kunt u realtime gegevens opvragen bij de API.

Laten we de gegevens van deze API halen:

fetch('https://fakestoreapi.com/products', ).then(res =>{ if (res.ok){ return res.json() } }).then(response=>{ console.log(response) }).catch(err => console.log(err))

Het antwoord op de bovenstaande ophaalcode ziet er als volgt uit:

Een API testen met Python en JavaScript

Om de prijs van alle producten te krijgen, bijvoorbeeld, kunt u de te gebruiken kaart functie:

fetch('https://fakestoreapi.com/products', ).then(res =>{ if (res.ok){ return res.json() } }).then(response=>{ response.map(data =>{ console.log(data.price) }) // console.log(response) }).catch(err => console.log(err))

Het bovenstaande logt de volgende uitvoer:

Een API testen met Python en JavaScript

Een Get-eindpunt testen met Python

Zoals eerder vermeld, gebruikt Python ook de verzoekenbibliotheek om toegang te krijgen tot de gegevens van een API.

Om in dit geval de status van het antwoord te controleren:

import requests data = requests.get('https://fakestoreapi.com/products') print(data.status_code)

Het loggen van gegevens zoals we hierboven deden, retourneert een overeenkomstige status. In dit geval is het echter 200.

Laten we nu dezelfde gegevens met Python krijgen als tijdens het gebruik van JavaScript:

import requests data = requests.get('https://fakestoreapi.com/products') myData = data.json() print(myData)

Het resultaat van het bovenstaande ziet er als volgt uit:

Een API testen met Python en JavaScript

U kunt specifieke gegevens krijgen met behulp van de for-lus .

Om productprijzen te krijgen, bijvoorbeeld:

import requests data = requests.get('https://fakestoreapi.com/products') myData = data.json() indexes = 0 for i in myData: goods = myData[indexes] indexes +=1 print(goods["price"])

Zo ziet de uitvoer eruit:

Een API testen met Python en JavaScript

Een post-eindpunt testen met JavaScript

Nadat je hebt getest en hebt gezien dat het Get- verzoek werkt, wil je, afhankelijk van je doel en wat de API biedt, misschien controleren of je er ook gegevens in kunt invoegen.

In tegenstelling tot hoe u een Get- verzoek doet, accepteert een Post- verzoek een payload. Bovendien moet je specificeren dat het een Post-verzoek is:

// Specify the payload let payload = { title: 'new product', price: 13.5, description: 'test description', image: '', category: 'electronic' } fetch('https://fakestoreapi.com/products', { method: "Post", headers:{ 'Content-Type': 'application/json' }, body: JSON.stringify(payload) //convert the payload to JSON } ).then(res =>{ if (res.ok){ console.log(res.status) return res.json() } }).then(response => { console.log(response) }).catch(err => console.log(err))

De bovenstaande code registreert de reactiestatuscode en de nieuwe informatie die is ingevoegd wanneer u deze uitvoert. Dit vertelt u of uw verzoek is doorgekomen of niet. Als de statuscode 200 is, heeft uw API doorgaans een geldig eindpunt dat het juiste antwoord retourneert.

Postverzoek testen met Python

U kunt ook een post-eindpunt van een API testen met behulp van Python's requests.post . Zoals je deed tijdens het gebruik van JavaScript's fetch , moet je hier ook de payload specificeren:

import requests payload = { 'title': 'new product', 'price': 13.5, 'description': 'test description', 'image': '', 'category': 'electronic' } Posted = requests.post('https://fakestoreapi.com/products', data = payload ) print(Posted.status_code) print(Posted.json())

Net als JavaScript registreert de bovenstaande Python-code ook de responsstatuscode en de nieuwe gegevens die zijn opgegeven in de payload .

De put-eindpunten testen

Het bijwerken van API-gegevens vereist hetzelfde proces als het plaatsen en verkrijgen ervan in beide talen.

Om dit te doen met behulp van JavaScript's fetch , hoeft u alleen Post te vervangen door Put :

// Specify the payload let payload = { title: 'new product', price: 13.5, description: 'test description', image: '', category: 'electronic' } fetch('https://fakestoreapi.com/products/19', { method: "Put", headers:{ 'Content-Type': 'application/json' }, body: JSON.stringify(payload) //convert the payload into JSON } ).then(res =>{ if (res.ok){ console.log(res.status) return res.json() } }).then(response => { console.log(response) }).catch(err => console.log(err))

Als u aandacht besteedt aan het API-eindpunt, ziet u dat het deze keer de product-ID bevat. Zo weet de API welke gegevens je in dit geval wilt updaten.

Desalniettemin kunnen sommige API's andere methoden gebruiken om hun eindpunten te maken. Dat is dus geen standaard.

Om API-gegevensupdate met Python te testen, gebruikt u in plaats daarvan verzoeken.put :

import requests payload = { 'title': 'new product', 'price': 13.5, 'description': 'test description', 'image': '', 'category': 'electronic' } Posted = requests.put('https://fakestoreapi.com/products/19', data = payload ) print(Posted.status_code) print(Posted.json())

De bovenstaande voorbeelden, indien succesvol, voeg de nieuwe gegevens in op positie 19 zoals aangegeven door het API-eindpunt.

Het verwijderverzoek testen

Het verwijderen van gegevens uit een API is net zo eenvoudig als het maken van een Get-verzoek. Dat komt omdat u, in tegenstelling tot Post en Put, geen payload hoeft op te geven. Het enige dat u nodig hebt, is het eindpunt voor verwijderen.

De hier gekozen API gebruikt de product-ID om zijn gegevens bij te houden. Een product verwijderen is dus eenvoudig:

fetch('https://fakestoreapi.com/products/19', { method: "Delete", headers:{ 'Content-Type': 'application/json' } } ).then(res =>{ if (res.ok){ console.log(res.status) return res.json() } }).then(response => { console.log(response) }).catch(err => console.log(err))

Je hebt maar een paar regels code nodig om hetzelfde te bereiken met Python:

import requests Posted = requests.delete('https://fakestoreapi.com/products/19', ) print(Posted.status_code) print(Posted.json())

Beide bovenstaande voorbeelden registreren de antwoordstatuscode en de gegevens die bij de opgevraagde id horen (19 in dit geval).

Zijn deze testmethoden algemeen?

Hoewel we ons in dit bericht slechts op één enkele API hebben gericht, zijn de methoden die worden gebruikt om de CRUD-eindpunten te testen niet anders bij het omgaan met andere API's. Het enige verschil kan natuurlijk zitten in de regels rond elke API-structuur en richtlijnen voor het opvragen van gegevens. Nadat u deze hebt ontcijferd voor een gekozen API, kunt u de juiste methode gebruiken, zoals hier beschreven, om de bijbehorende eindpunten te testen.

Aangezien elke API dus regels heeft om ermee te verbinden, kunnen sommige tijdens het testen aanvullende parameters bieden die u in uw aanvraagheaders kunt opnemen. Dergelijke parameters bevatten meestal een toegangstoken of andere zoals vermeld in de documentatie.


Python gebruiken als opdrachtregelcalculator

Python gebruiken als opdrachtregelcalculator

Hoewel u een grafische rekenmachine op uw computer kunt gebruiken, kan de Python-programmeertaalinterpreter ook dienst doen als bureaurekenmachine. Het is zo'n populaire hardloopgrap in de Python-gemeenschap dat het wordt genoemd in de officiële tutorial. Hier leest u hoe u Python als rekenmachine kunt gebruiken.

De 8 beste Java-blogs voor programmeurs

De 8 beste Java-blogs voor programmeurs

Als programmeur moet je uitdagingen aangaan om te overleven en wonderen te bouwen op het gebied van ontwikkeling of programmeren. Als u dus een geavanceerde programmeertaal wilt leren om uw carrièrevaardigheden te verbeteren, is Java een van de beste vooruitzichten die er zijn.

7 essentiële commandos om aan de slag te gaan met Python voor beginners

7 essentiële commandos om aan de slag te gaan met Python voor beginners

Het leren van een nieuwe programmeertaal zoals Python wordt moeiteloos als je een uitgebreid stappenplan hebt waarin wordt beschreven welke concepten je als beginner moet leren en hoe je verder kunt komen om de volgende mijlpaal te bereiken. Zelfs gevorderde programmeurs zouden hun basis regelmatig moeten opfrissen om een ​​solide basis voor zichzelf op te bouwen.

Responsieve webontwerpprincipes

Responsieve webontwerpprincipes

Tegenwoordig is het gebruikelijk om een ​​website of app te bouwen die de gebruikersinterface aanpast, afhankelijk van de browser of het apparaat. Er zijn twee benaderingen om dit doel te bereiken. De eerste omvat het maken van verschillende versies van uw website of app voor verschillende apparaten. Maar het is inefficiënt en kan leiden tot onvoorspelbare fouten.

Het aantal cijfers in een getal tellen met C++, Python en JavaScript

Het aantal cijfers in een getal tellen met C++, Python en JavaScript

Werken met getallen is een integraal onderdeel van programmeren. Elke programmeertaal biedt ondersteuning om getallen op veel verschillende manieren te manipuleren. In dit artikel leert u hoe u het totale aantal cijfers in een geheel getal kunt vinden met behulp van iteratieve, op logs gebaseerde en op tekenreeksen gebaseerde benaderingen.

SQL versus NoSQL: wat is de beste database voor uw volgende project?

SQL versus NoSQL: wat is de beste database voor uw volgende project?

SQL versus NoSQL: wat is de beste database voor uw volgende project?

Tweets insluiten in uw WordPress-berichten

Tweets insluiten in uw WordPress-berichten

Het insluiten van services van derden in uw WordPress-berichten is een opwindende manier om de interesse van een bezoeker te wekken. Ingesloten inhoud biedt ook visuele aanwijzingen die het scannen gemakkelijker maken. WordPress heeft het toevoegen van dit soort inhoud eenvoudig gemaakt.

Hoe de map Node Modules te verwijderen met npkill

Hoe de map Node Modules te verwijderen met npkill

Node.js is een JavaScript-runtimeomgeving waarmee u JavaScript buiten webbrowsers kunt uitvoeren, waardoor het een populaire keuze is voor het ontwikkelen van allerlei soorten toepassingen. Een deel van zijn populariteit is te danken aan de overvloed aan NPM-pakketten die er zijn om de ontwikkelaarservaring te vergemakkelijken.

Hoe u uw eerste Solidity-code schrijft en compileert

Hoe u uw eerste Solidity-code schrijft en compileert

Solidity is de programmeertaal die wordt gebruikt door slimme contracten op de Ethereum-blockchain. Het is een statisch getypeerde, objectgeoriënteerde programmeertaal.

Top 5 badges die uw GitHub-repository een boost zullen geven

Top 5 badges die uw GitHub-repository een boost zullen geven

GitHub-badges kunnen de leesbaarheid van een repository vergroten door gebruikers een snelle manier te bieden om de repository-statistieken vast te leggen. Badges kunnen worden ingesloten in uw README.md om het belang en de noodzaak van uw project aan andere ontwikkelaars duidelijk te maken. Als gevolg hiervan krijgen lezers een heel snel idee van de repository door de bijgevoegde badges te controleren.

Wat is de Internationale Dag van de Programmeurs? 3 manieren om dit jaar te vieren

Wat is de Internationale Dag van de Programmeurs? 3 manieren om dit jaar te vieren

Internationale feestdagen zijn een leuke manier om erkenning te geven aan sociale zaken, historische dagen en respectieve carrières. International Programmers' Day viert de rol die programmeurs spelen om het dagelijks leven te verbeteren. De beschaafde wereld waarin we leven is een product van het harde werk van programmeurs.

Hoe werkt de methode Python String format()? 10 voorbeelden

Hoe werkt de methode Python String format()? 10 voorbeelden

Of het nu gaat om een ​​databasequery of resultaten van wiskundige bewerkingen, de Python-tekenreeksindelingsmethode biedt een meer dynamische en aantrekkelijke manier om resultaten aan een gebruiker te presenteren.

Visual Studio 2022 vs. 2019: moet u nu upgraden? uitgelegd

Visual Studio 2022 vs. 2019: moet u nu upgraden? uitgelegd

Eerder dit jaar bracht Microsoft de preview-versie van Visual Studio 2022 uit in de wilde programmeerwereld. Dit is goed nieuws! Het is een extreem populaire IDE, maar aan een opknapbeurt of misschien zelfs een revisie toe, gezien het tempo van de veranderingen in het DevOps-ecosysteem waarin het gedijt.

Een eenvoudige introductie tot softwarestatistieken

Een eenvoudige introductie tot softwarestatistieken

Softwarestatistieken zijn metingen die worden gebruikt om verschillende aspecten van uw software te kwantificeren. Deze aspecten kunnen variëren van de kosten, kwaliteit en efficiëntie van het ontwikkelteam.

Flask of CherryPy: welk Python-framework moet je gebruiken?

Flask of CherryPy: welk Python-framework moet je gebruiken?

Als je een Python-ontwikkelaar bent, kun je enorm profiteren van de reeks beschikbare frameworks. Terwijl sommige kaders het meest geschikt zijn voor grote ecosystemen, zijn andere gespecialiseerd in het dienen van specifieke ontwikkelingsdoelen. Lees verder om de basisfuncties, het gebruik en de verschillen tussen twee Python-frameworks te leren: Flask en CherryPy.

N-cijferige perfecte kubussen en vierkanten vinden met Python, C++ en JavaScript

N-cijferige perfecte kubussen en vierkanten vinden met Python, C++ en JavaScript

Veel programmeurs houden ervan om lastige wiskundige problemen op te lossen met behulp van code. Het helpt de geest te scherpen en het probleemoplossend vermogen te verbeteren. In dit artikel leer je hoe je de kleinste en grootste n-cijferige perfecte vierkanten en kubussen kunt vinden met Python, C++ en JavaScript. Elk voorbeeld bevat ook voorbeelduitvoer voor verschillende waarden.

Hoe de Python if-instructie te gebruiken?

Hoe de Python if-instructie te gebruiken?

Het if-statement is de drijvende kracht achter logisch programmeren. Als gevolg hiervan is een beter begrip van Pythons een belangrijke toevoeging aan je Python-programmeervaardigheden.

Coderen is niet voor iedereen: 9 technische banen die je zonder kunt krijgen

Coderen is niet voor iedereen: 9 technische banen die je zonder kunt krijgen

Technologie is zonder twijfel de industrie van de toekomst. Als je een van de miljoenen jonge volwassenen bent die op het punt staan ​​om in de eerste fase van je carrière te duiken, vraag je je misschien af ​​wat je moet doen als je niet van coderen houdt.

Hoe u uw virtuele Python-omgevingen effectief kunt maken en beheren

Hoe u uw virtuele Python-omgevingen effectief kunt maken en beheren

U kunt een real-life project in Python niet met succes voltooien zonder een virtuele omgeving. Tools zoals virtualenvwrapper en virtualenv zijn gebruikelijk voor het maken en beheren van virtuele omgevingen voor webontwikkeling, terwijl anaconda veel wordt gebruikt door datawetenschappers.

Het CSS Box-model uitgelegd met voorbeelden

Het CSS Box-model uitgelegd met voorbeelden

Als u van plan bent een geweldige webpagina-indeling te maken, moet u weten over marges, randen, opvulling en inhoud. Elk element in webdesign, of het nu een afbeelding of tekst is, gebruikt een kader met deze eigenschappen. Je kunt eenvoudig complexe lay-outs bouwen door te spelen met het doosmodel. In dit artikel zullen we het CSS Box-model ontleden en laten zien hoe u deze eigenschappen kunt gebruiken met praktische voorbeelden.

Python gebruiken als opdrachtregelcalculator

Python gebruiken als opdrachtregelcalculator

Hoewel u een grafische rekenmachine op uw computer kunt gebruiken, kan de Python-programmeertaalinterpreter ook dienst doen als bureaurekenmachine. Het is zo'n populaire hardloopgrap in de Python-gemeenschap dat het wordt genoemd in de officiële tutorial. Hier leest u hoe u Python als rekenmachine kunt gebruiken.

De 8 beste Java-blogs voor programmeurs

De 8 beste Java-blogs voor programmeurs

Als programmeur moet je uitdagingen aangaan om te overleven en wonderen te bouwen op het gebied van ontwikkeling of programmeren. Als u dus een geavanceerde programmeertaal wilt leren om uw carrièrevaardigheden te verbeteren, is Java een van de beste vooruitzichten die er zijn.

7 essentiële commandos om aan de slag te gaan met Python voor beginners

7 essentiële commandos om aan de slag te gaan met Python voor beginners

Het leren van een nieuwe programmeertaal zoals Python wordt moeiteloos als je een uitgebreid stappenplan hebt waarin wordt beschreven welke concepten je als beginner moet leren en hoe je verder kunt komen om de volgende mijlpaal te bereiken. Zelfs gevorderde programmeurs zouden hun basis regelmatig moeten opfrissen om een ​​solide basis voor zichzelf op te bouwen.

Responsieve webontwerpprincipes

Responsieve webontwerpprincipes

Tegenwoordig is het gebruikelijk om een ​​website of app te bouwen die de gebruikersinterface aanpast, afhankelijk van de browser of het apparaat. Er zijn twee benaderingen om dit doel te bereiken. De eerste omvat het maken van verschillende versies van uw website of app voor verschillende apparaten. Maar het is inefficiënt en kan leiden tot onvoorspelbare fouten.

Het aantal cijfers in een getal tellen met C++, Python en JavaScript

Het aantal cijfers in een getal tellen met C++, Python en JavaScript

Werken met getallen is een integraal onderdeel van programmeren. Elke programmeertaal biedt ondersteuning om getallen op veel verschillende manieren te manipuleren. In dit artikel leert u hoe u het totale aantal cijfers in een geheel getal kunt vinden met behulp van iteratieve, op logs gebaseerde en op tekenreeksen gebaseerde benaderingen.

De 9 beste Docker-alternatieven voor containerbeheer

De 9 beste Docker-alternatieven voor containerbeheer

Containers zijn zeer nuttig voor softwareontwikkeling, implementatie en beheer in een virtuele omgeving. Docker is handig in het containerisatieproces, maar het is niet het enige platform dat er is. Als u op zoek bent naar alternatieven voor Docker, hoeft u niet verder te zoeken. Deze lijst toont enkele veelzijdige en efficiënte Docker-alternatieven die u in uw volgende project kunt gebruiken.

SQL versus NoSQL: wat is de beste database voor uw volgende project?

SQL versus NoSQL: wat is de beste database voor uw volgende project?

SQL versus NoSQL: wat is de beste database voor uw volgende project?

Tweets insluiten in uw WordPress-berichten

Tweets insluiten in uw WordPress-berichten

Het insluiten van services van derden in uw WordPress-berichten is een opwindende manier om de interesse van een bezoeker te wekken. Ingesloten inhoud biedt ook visuele aanwijzingen die het scannen gemakkelijker maken. WordPress heeft het toevoegen van dit soort inhoud eenvoudig gemaakt.

Hoe de map Node Modules te verwijderen met npkill

Hoe de map Node Modules te verwijderen met npkill

Node.js is een JavaScript-runtimeomgeving waarmee u JavaScript buiten webbrowsers kunt uitvoeren, waardoor het een populaire keuze is voor het ontwikkelen van allerlei soorten toepassingen. Een deel van zijn populariteit is te danken aan de overvloed aan NPM-pakketten die er zijn om de ontwikkelaarservaring te vergemakkelijken.

Hoe u uw eerste Solidity-code schrijft en compileert

Hoe u uw eerste Solidity-code schrijft en compileert

Solidity is de programmeertaal die wordt gebruikt door slimme contracten op de Ethereum-blockchain. Het is een statisch getypeerde, objectgeoriënteerde programmeertaal.