Flusso di lavoro per la creazione di un'API RESTful

3

Sto costruendo un'API RESTful, e finora, per assicurarmi che le mie risorse funzionino come ho bisogno, sto utilizzando un client REST chiamato Postman. Ciò semplifica la memorizzazione dei percorsi e la rapida richiesta di test. La mia attuale raccolta di percorsi in Postman ha questo aspetto:

Il problema con il test dell'API è in questo modo è necessario modificare manualmente gli ID delle risorse. Ad esempio, se voglio testare il metodo PUT sulla mia risorsa post, devo prima creare una risorsa, trovare l'ID e quindi incollarlo nell'URI PUT . Questo è lungo!

Che cosa è considerata una pratica professionale per la creazione di un'API RESTful? Devo scrivere test di unità per ogni percorso, creando dinamicamente il post prima di testare metodi come l'aggiornamento?

    
posta Oliver Joseph Ash 19.02.2013 - 11:41
fonte

2 risposte

3

Testare qualsiasi tipo di API è molto difficile da eseguire manualmente, specialmente senza un'interfaccia utente che lo utilizza. Non appena trovi che il test manuale sta diventando complicato o noioso, è un sicuro segnale che hai bisogno di alcuni test automatici.

Potresti scrivere test di integrazione dal livello HTTP che prima chiama l'API per configurare i dati in modo appropriato. Ma scrivere veri test unitari potrebbe essere preferibile se hai più livelli di codice sotto la tua API. Puoi stubare e prendere in giro le chiamate al servizio dati per evitare di dover chiamare l'API più volte per test.

    
risposta data 19.02.2013 - 17:02
fonte
0

Svilupperei un programma client per la mia API REST (ero solito fare Python, ma al giorno d'oggi perché non usare Node.JS). Questo è il modo migliore di testare, perché lo stai effettivamente utilizzando e, inoltre, puoi avviare il programma quanto più tempo desideri e automatizzare il test utilizzando una lib test. Non è così tanto da scrivere e, in realtà, ti dà qualche interessante punto di qualità del software.

Questo non è un test unitario, si tratta di un puro test funzionale, si tratta di dare qualche garanzia all'utente che funzioni come previsto.

Punto in più: se vuoi testare qualche altro sito web globale (non solo API) con lo stesso approccio, ti suggerisco di provare CasperJS .

    
risposta data 02.03.2013 - 15:03
fonte

Leggi altre domande sui tag