Come testare unAPI usando Python e JavaScript

Come testare unAPI usando Python e JavaScript

È una linea sottile tra la scelta di un'interfaccia di programmazione dell'applicazione (API) e la decisione se è possibile utilizzarla o meno. La maggior parte delle API REST ha un'architettura generica e thread un percorso di richiesta comune. Ma alcune API là fuori si discostano dallo standard. Di conseguenza, diventano difficili da usare.

Pertanto, prima di creare l'intero software su un'API, è necessario eseguire controlli di qualità e assicurarsi che funzioni correttamente. Quindi cos'è il test API e come puoi testare un'API?

Che cos'è il test API?

Il test delle API comporta la valutazione iniziale della funzionalità, sicurezza, scalabilità, velocità e altro di un'API per vedere se è l'ideale per il programma che vuole utilizzarlo. Ma superficialmente, potrebbe comportare dei test per vedere se invia le risposte appropriate quando si effettuano richieste attraverso i suoi vari endpoint.

A seconda della sua struttura, durante il test di un'API, farai richieste (Get, Post, Update o Delete) ai relativi endpoint. Ci sono molte metriche da controllare durante i test API. Ma a un livello principiante, vuoi convalidare l'integrità di un'API dal suo codice di stato e assicurarti che recuperi e accetti i dati corretti.

A tal fine, come qualsiasi richiesta Web, un'API potrebbe restituire il codice di stato 200, 400 o 500 o anche altri.

La maggior parte delle API utilizza le risposte JSON per servire i propri payload. A seconda dell'obiettivo, altri possono accettare e rispondere con payload XML, multipart o HTML.

Come testare un'API usando Python e JavaScript

Sebbene su Internet siano disponibili molti strumenti di test dell'API dell'interfaccia utente grafica (GUI), è possibile valutare un'API in modo più critico con script scritti.

Un'API indica nella sua documentazione il tipo di richieste che consente e fornisce loro endpoint rilevanti. Quindi puoi prenderli e testarli usando i metodi di richiesta appropriati.

Correlati: che cos'è l'API REST e come puoi acquisire dati per la tua app o il tuo sito web?

A differenza della fase di produzione effettiva, il test API è grezzo. Quindi non hai bisogno della stessa specificità che avresti durante l'esecuzione dell'API per la produzione. Sebbene esistano diversi tipi di test API, in questo articolo ci concentreremo maggiormente sui test di convalida delle risposte.

Ci prova un'API negozio di falso in questo tutorial utilizzando JavaScript fetch e di Python richieste biblioteca. Durante questa operazione, testeremo gli endpoint per ottenere, pubblicare, aggiornare ed eliminare i dati.

Come testare un endpoint Get API con JavaScript

Come lo useresti in produzione, puoi testare un'API in JavaScript utilizzando Axios o il metodo fetch .

Per ottenere lo stato della risposta dall'API utilizzando fetch :

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

La richiesta di cui sopra restituisce uno stato 200 se è una risposta valida. Dopo aver effettuato una richiesta con successo, puoi richiedere dati in tempo reale dall'API.

Prendiamo i dati da questa API:

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

La risposta al codice di recupero sopra è simile a questa:

Come testare un'API usando Python e JavaScript

Per ottenere il prezzo di tutti i prodotti, ad esempio, puoi utilizzare la funzione mappa :

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))

Quanto sopra registra il seguente output:

Come testare un'API usando Python e JavaScript

Testare un Get Endpoint con Python

Come accennato in precedenza, Python utilizza anche la libreria delle richieste per accedere ai dati di un'API.

Per verificare lo stato della risposta in questo caso:

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

La registrazione dei dati come abbiamo fatto sopra restituisce uno stato corrispondente. Però in questo caso sono 200.

Ora otteniamo gli stessi dati con Python come abbiamo fatto durante l'utilizzo di JavaScript:

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

Il risultato di quanto sopra è simile a questo:

Come testare un'API usando Python e JavaScript

Puoi ottenere dati specifici usando il ciclo for .

Per ottenere i prezzi dei prodotti, ad esempio:

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"])

Ecco come appare l'output:

Come testare un'API usando Python e JavaScript

Testare un Post Endpoint con JavaScript

Dopo aver testato e visto che la richiesta Get funziona, a seconda del tuo obiettivo e di ciò che offre l'API, potresti voler verificare se puoi inserire anche dati in essa.

A differenza di come si effettua una richiesta Get , una richiesta Post accetta un payload. Inoltre, dovrai specificare che si tratta di una richiesta di Post:

// 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))

Il codice precedente registra il codice di stato della risposta e le nuove informazioni inserite quando lo esegui. Questo ti dice se la tua richiesta è andata a buon fine o meno. In genere, se il codice di stato è 200, l'API ha un endpoint valido che restituisce la risposta appropriata.

Test della richiesta di post con Python

È inoltre possibile verificare un post finale di un'API di Python usando requests.post . Come hai fatto durante l'utilizzo di fetch di JavaScript , devi specificare anche qui il payload:

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())

Come JavaScript, il codice Python sopra riportato registra anche il codice di stato della risposta e i nuovi dati specificati all'interno del payload .

Testare gli Endpoint Put

L'aggiornamento dei dati API richiede lo stesso processo della pubblicazione e del loro ottenimento in entrambe le lingue.

Per fare ciò utilizzando il fetch di JavaScript , devi solo sostituire Post con 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))

Se presti attenzione all'endpoint API, vedrai che questa volta include l'ID prodotto. Questo è il modo in cui l'API sa quali dati vuoi aggiornare in questo caso.

Tuttavia, alcune API potrebbero utilizzare altri metodi per creare i propri endpoint. Quindi non è uno standard.

Per testare l'aggiornamento dei dati dell'API utilizzando Python, usi invece request.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())

Gli esempi precedenti, in caso di successo, inseriscono i nuovi dati nella posizione 19 come indicato dall'endpoint API.

Testare la richiesta di cancellazione

Eliminare i dati da un'API è facile come fare una richiesta Get. Questo perché, a differenza di Post e Put, non è necessario specificare alcun payload. Tutto ciò di cui hai bisogno è l'endpoint di eliminazione.

La nostra API scelta qui utilizza l'ID del prodotto per tenere traccia dei suoi dati. Quindi, eliminare un prodotto è facile:

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))

Hai solo bisogno di poche righe di codice per ottenere la stessa cosa usando Python:

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

Entrambi gli esempi sopra registrano il codice di stato della risposta e i dati appartenenti all'id richiesto (19 in questo caso).

Questi metodi di test sono generici?

Sebbene in questo post ci siamo concentrati solo su una singola API, i metodi utilizzati per testare gli endpoint CRUD non sono diversi quando si tratta di altre API. L'unica differenza, ovviamente, potrebbe essere nelle regole che circondano ogni struttura API e nelle linee guida per la richiesta dei dati. Dopo averli decifrati per un'API scelta, è possibile utilizzare il metodo appropriato, come descritto qui, per testare gli endpoint corrispondenti.

Pertanto, poiché ogni API ha regole per connettersi ad essa, durante il test, alcune potrebbero fornire parametri aggiuntivi da includere nelle intestazioni della richiesta. Tali parametri di solito includono un token di accesso o altri come previsto nella documentazione.


Come usare Python come calcolatrice da riga di comando

Come usare Python come calcolatrice da riga di comando

Sebbene sia possibile utilizzare una calcolatrice grafica sul computer, l'interprete del linguaggio di programmazione Python può fungere anche da calcolatrice da tavolo. È uno scherzo così popolare nella comunità Python che è menzionato nel tutorial ufficiale. Ecco come puoi usare Python come calcolatrice.

Gli 8 migliori blog Java per programmatori

Gli 8 migliori blog Java per programmatori

Come programmatore, dovresti accettare le sfide per sopravvivere e costruire alcune meraviglie nel campo dello sviluppo o della programmazione. Quindi, se stai cercando di imparare un linguaggio di programmazione avanzato per migliorare le tue capacità professionali, Java è una delle migliori prospettive in circolazione.

7 comandi vitali per iniziare con Python per principianti

7 comandi vitali per iniziare con Python per principianti

Imparare un nuovo linguaggio di programmazione come Python diventa facile se hai una tabella di marcia completa che dettaglia quali concetti imparare come principiante e come progredire ulteriormente per raggiungere il prossimo traguardo. Anche i programmatori intermedi dovrebbero spesso rispolverare le proprie nozioni di base per costruire una solida base per se stessi.

Principi di web design reattivo

Principi di web design reattivo

Al giorno d'oggi, è pratica comune creare un sito Web o un'app che regoli la sua interfaccia utente a seconda del browser o del dispositivo. Ci sono due approcci per raggiungere questo obiettivo. Il primo prevede la creazione di versioni diverse del tuo sito Web o della tua app per dispositivi diversi. Ma è inefficiente e può portare a errori imprevedibili.

Come contare il numero di cifre in un numero usando C++, Python e JavaScript

Come contare il numero di cifre in un numero usando C++, Python e JavaScript

Lavorare con i numeri è parte integrante della programmazione. Ogni linguaggio di programmazione fornisce supporto per manipolare i numeri in molti modi diversi. In questo articolo imparerai come trovare il numero totale di cifre in un numero intero utilizzando approcci iterativi, basati su log e basati su stringhe.

Le 9 migliori alternative Docker per la gestione dei container

Le 9 migliori alternative Docker per la gestione dei container

I container sono estremamente utili per lo sviluppo, la distribuzione e la gestione del software in un ambiente virtuale. Docker è utile nel processo di containerizzazione, ma non è l'unica piattaforma disponibile. Se stai cercando delle alternative a Docker, non cercare oltre. Questo elenco mostra alcune alternative Docker ricche di funzionalità ed efficienti da utilizzare nel tuo prossimo progetto.

SQL vs NoSQL: qual è il miglior database per il tuo prossimo progetto?

SQL vs NoSQL: qual è il miglior database per il tuo prossimo progetto?

SQL vs NoSQL: qual è il miglior database per il tuo prossimo progetto?

Come incorporare i tweet nei tuoi post di WordPress

Come incorporare i tweet nei tuoi post di WordPress

Incorporare servizi di terze parti nei tuoi post di WordPress è un modo entusiasmante per catturare l'interesse di un visitatore. Il contenuto incorporato fornisce anche indicazioni visive che semplificano la scansione. WordPress ha reso facile l'aggiunta di questo tipo di contenuto.

Come eliminare la cartella dei moduli del nodo con npkill

Come eliminare la cartella dei moduli del nodo con npkill

Node.js è un ambiente di runtime JavaScript che consente di eseguire JavaScript al di fuori dei browser Web, rendendolo una scelta popolare per lo sviluppo di tutti i tipi di applicazioni. Parte della sua popolarità è dovuta alla pletora di pacchetti NPM disponibili per facilitare l'esperienza degli sviluppatori.

Come scrivere e compilare il tuo primo codice di solidità

Come scrivere e compilare il tuo primo codice di solidità

Solidity è il linguaggio di programmazione utilizzato dagli smart contract sulla blockchain di Ethereum. È un linguaggio di programmazione orientato agli oggetti e tipizzato in modo statico.

I 5 migliori badge che supereranno il tuo repository GitHub

I 5 migliori badge che supereranno il tuo repository GitHub

I badge GitHub possono aumentare la leggibilità di un repository fornendo agli utenti un modo rapido per acquisire le metriche del repository. I badge possono essere incorporati nel tuo README.md per chiarire l'importanza e la necessità del tuo progetto ad altri sviluppatori. Di conseguenza, i lettori si fanno un'idea molto veloce del repository controllando i badge allegati.

Che cosè la Giornata internazionale dei programmatori? 3 modi per festeggiare questanno

Che cosè la Giornata internazionale dei programmatori? 3 modi per festeggiare questanno

Le giornate celebrative internazionali sono un bel modo per dare riconoscimento a questioni sociali, giornate storiche e rispettive carriere. La Giornata internazionale dei programmatori celebra il ruolo che i programmatori svolgono per migliorare la vita di tutti i giorni. Il mondo civilizzato in cui viviamo è un prodotto del duro lavoro svolto dai programmatori.

Come funziona il metodo Python String format()? 10 esempi

Come funziona il metodo Python String format()? 10 esempi

Che si tratti di una query di database o di risultati di operazioni matematiche, il metodo del formato stringa Python offre un modo più dinamico e accattivante per presentare i risultati a un utente.

Visual Studio 2022 vs. 2019: dovresti eseguire laggiornamento ora? spiegato

Visual Studio 2022 vs. 2019: dovresti eseguire laggiornamento ora? spiegato

All'inizio di quest'anno, Microsoft ha rilasciato la versione di anteprima di Visual Studio 2022 nel mondo della programmazione selvaggia. Questa è una buona notizia! È un IDE estremamente popolare, ma dovrebbe essere messo a punto o forse anche una revisione, dato il ritmo del cambiamento nell'ecosistema DevOps in cui prospera.

Una semplice introduzione alle metriche del software

Una semplice introduzione alle metriche del software

Le metriche del software sono misure utilizzate per quantificare vari aspetti del software. Questi aspetti possono variare dal costo, alla qualità e all'efficienza del team di sviluppo.

Come installare .NET Framework versione 3.5 su Windows 10

Come installare .NET Framework versione 3.5 su Windows 10

Come utente Windows, probabilmente ti sei imbattuto almeno una volta nelle parole .NET Framework. È un framework software sviluppato da Microsoft che ti consente di creare ed eseguire programmi C#, C++, F# e Visual Basic. L'ultima versione di .NET è la 4.8, ma il tuo computer potrebbe aver bisogno di una versione precedente di .NET (come .NET 3.5) per eseguire alcune app.

Flask o CherryPy: quale framework Python dovresti usare?

Flask o CherryPy: quale framework Python dovresti usare?

Se sei uno sviluppatore Python, puoi trarre grandi vantaggi dalla gamma di framework disponibili. Mentre alcuni framework sono più adatti per grandi ecosistemi, altri sono specializzati nel servire specifici obiettivi di sviluppo. Continua a leggere per apprendere le funzionalità di base, gli usi e le differenze tra due framework Python: Flask e CherryPy.

Come trovare cubi e quadrati perfetti a N cifre utilizzando Python, C++ e JavaScript

Come trovare cubi e quadrati perfetti a N cifre utilizzando Python, C++ e JavaScript

Molti programmatori amano risolvere complicati problemi matematici usando il codice. Aiuta ad affinare la mente e migliorare le capacità di risoluzione dei problemi. In questo articolo imparerai come trovare i quadrati e i cubi perfetti a n cifre più piccoli e più grandi utilizzando Python, C++ e JavaScript. Ciascun esempio contiene anche un output di esempio per diversi valori.

Come aggiungere Python alla variabile PATH di Windows

Come aggiungere Python alla variabile PATH di Windows

L'esecuzione di Python dal terminale è spesso inevitabile. Tuttavia, se hai appena installato Python su Windows 10 per la prima volta, eseguirlo tramite il Terminale di Windows è possibile solo se viene aggiunto alla variabile di ambiente PATH di Windows.

Come usare listruzione if di Python?

Come usare listruzione if di Python?

L'istruzione if è la forza trainante della programmazione logica. Di conseguenza, una migliore comprensione di Python è un'aggiunta significativa alle tue capacità di programmazione in Python.

Come usare Python come calcolatrice da riga di comando

Come usare Python come calcolatrice da riga di comando

Sebbene sia possibile utilizzare una calcolatrice grafica sul computer, l'interprete del linguaggio di programmazione Python può fungere anche da calcolatrice da tavolo. È uno scherzo così popolare nella comunità Python che è menzionato nel tutorial ufficiale. Ecco come puoi usare Python come calcolatrice.

Gli 8 migliori blog Java per programmatori

Gli 8 migliori blog Java per programmatori

Come programmatore, dovresti accettare le sfide per sopravvivere e costruire alcune meraviglie nel campo dello sviluppo o della programmazione. Quindi, se stai cercando di imparare un linguaggio di programmazione avanzato per migliorare le tue capacità professionali, Java è una delle migliori prospettive in circolazione.

7 comandi vitali per iniziare con Python per principianti

7 comandi vitali per iniziare con Python per principianti

Imparare un nuovo linguaggio di programmazione come Python diventa facile se hai una tabella di marcia completa che dettaglia quali concetti imparare come principiante e come progredire ulteriormente per raggiungere il prossimo traguardo. Anche i programmatori intermedi dovrebbero spesso rispolverare le proprie nozioni di base per costruire una solida base per se stessi.

Principi di web design reattivo

Principi di web design reattivo

Al giorno d'oggi, è pratica comune creare un sito Web o un'app che regoli la sua interfaccia utente a seconda del browser o del dispositivo. Ci sono due approcci per raggiungere questo obiettivo. Il primo prevede la creazione di versioni diverse del tuo sito Web o della tua app per dispositivi diversi. Ma è inefficiente e può portare a errori imprevedibili.

Come contare il numero di cifre in un numero usando C++, Python e JavaScript

Come contare il numero di cifre in un numero usando C++, Python e JavaScript

Lavorare con i numeri è parte integrante della programmazione. Ogni linguaggio di programmazione fornisce supporto per manipolare i numeri in molti modi diversi. In questo articolo imparerai come trovare il numero totale di cifre in un numero intero utilizzando approcci iterativi, basati su log e basati su stringhe.

Le 9 migliori alternative Docker per la gestione dei container

Le 9 migliori alternative Docker per la gestione dei container

I container sono estremamente utili per lo sviluppo, la distribuzione e la gestione del software in un ambiente virtuale. Docker è utile nel processo di containerizzazione, ma non è l'unica piattaforma disponibile. Se stai cercando delle alternative a Docker, non cercare oltre. Questo elenco mostra alcune alternative Docker ricche di funzionalità ed efficienti da utilizzare nel tuo prossimo progetto.

SQL vs NoSQL: qual è il miglior database per il tuo prossimo progetto?

SQL vs NoSQL: qual è il miglior database per il tuo prossimo progetto?

SQL vs NoSQL: qual è il miglior database per il tuo prossimo progetto?

Come incorporare i tweet nei tuoi post di WordPress

Come incorporare i tweet nei tuoi post di WordPress

Incorporare servizi di terze parti nei tuoi post di WordPress è un modo entusiasmante per catturare l'interesse di un visitatore. Il contenuto incorporato fornisce anche indicazioni visive che semplificano la scansione. WordPress ha reso facile l'aggiunta di questo tipo di contenuto.

Come eliminare la cartella dei moduli del nodo con npkill

Come eliminare la cartella dei moduli del nodo con npkill

Node.js è un ambiente di runtime JavaScript che consente di eseguire JavaScript al di fuori dei browser Web, rendendolo una scelta popolare per lo sviluppo di tutti i tipi di applicazioni. Parte della sua popolarità è dovuta alla pletora di pacchetti NPM disponibili per facilitare l'esperienza degli sviluppatori.

Come scrivere e compilare il tuo primo codice di solidità

Come scrivere e compilare il tuo primo codice di solidità

Solidity è il linguaggio di programmazione utilizzato dagli smart contract sulla blockchain di Ethereum. È un linguaggio di programmazione orientato agli oggetti e tipizzato in modo statico.