“Fotografia a lunga esposizione dell'uragano” di Nikolas Noonan su Unsplash

Come costruire un'API REST in Python con Tornado (parte 1)

Sono uno sviluppatore front-end da molto tempo ormai e ho lavorato molto con gli endpoint API REST prima, ma non ho mai saputo crearne uno. In Octopus Labs utilizziamo Python e Tornado per creare endpoint, e per il mio tempo di progetto del 10% ho deciso di aprire questa scatola nera, e non è così difficile come pensavo. Ho deciso di creare un piccolo tutorial per altre persone frontend che vogliono provare a fare lo stesso o solo persone che vogliono imparare a usare Tornado.

Questo tutorial presuppone che tu abbia una conoscenza di base di Python o qualche esperienza Javascript moderna.

Configurazione principale

1. Assicurati di avere un editor di testo decente, consiglio VScode a causa del supporto per il debug ed è gratuito.

2. Scarica Postman e installalo sul tuo computer, è anche gratuito. Questo verrà utilizzato per verificare che la nostra API funzioni.

3. Assicurati di aver installato Python, controlla digitando

$ python

nel terminale e dovresti essere portato alla console di Python.

Altrimenti puoi scaricarlo qui. Per questo tutorial, non importa se hai la versione 2x o 3x di Python. Esci dalla console digitando quit ().

4. Dovrai ottenere pipenv che è l'equivalente Python di npm. Per scaricarlo digita questo nel terminale.

$ brew installa pipenv

Quindi digitare pipenv dovrebbe mostrare:

5. Crea una cartella da qualche parte chiamata todo-list-api e naviga verso di essa.

6. Digitare:

$ pipenv installa tornado

Per installare Tornado. Una volta fatto, dovresti vedere Pipfile e Pipfile.lock equivalenti a package.json e package-lock.json.

Creazione di un endpoint semplice

1. All'interno della cartella todo-list-api creare un file chiamato app.py.

2. Copia e incolla questo pezzo di codice (questo codice verrà spiegato in seguito):

3. Quindi esegui nel tuo terminale:

$ pipenv esegue python app.py

Non dovrebbe succedere nulla di buono.

4. Ora vai a http: // localhost: 3000 / nel tuo browser e se tutto va bene dovresti vedere:

Congratulazioni, hai creato un endpoint.

Ora spieghiamo cosa stanno facendo queste 15 righe di codice, in gran parte si spiega da sé.

Le linee uno e due stanno importando, ovviamente.

La classe HelloHandler (righe 4–6) che eredita RequestHandler aveva una funzione chiamata get () e che scrive un dict (oggetto in JS) nella pagina come JSON.

La funzione make_app (righe 8–10) è quella che si occupa degli URL e delle impostazioni del server, nonché della creazione dell'applicazione.

E l'ultima sezione esegue il server.

se __name__ == ″ __main__ ’:

Questo pezzo di codice è solo per convenzione, in questo caso è possibile eliminarlo e l'endpoint continuerà a funzionare correttamente. Fondamentalmente Python dice che esegui questo codice solo se app.py viene eseguito dal terminale. Se abbiamo creato un altro file chiamato app2.py e eseguito invece "python app2.py", il codice riportato di seguito se __name__ == ″ __main__ ’in app.py non verrà eseguito.

Installazione postino

Poiché non controlleremo gli endpoint nel browser per tutto il tempo, impostiamo il postino per farlo

1. Fai clic sull'icona della nuova collezione e assegnagli un nome di `Elenco di todo di Tornado`.

2. In Nuova scheda se il menu a discesa accanto alla barra degli indirizzi non dice GET, modificalo così.

3. Inseriscilo nella barra degli indirizzi http: // localhost: 3000 /.

4. Successivamente, fai clic sulla scheda delle intestazioni, quindi aggiungi una chiave di Content-Type e il valore di application / json.

5. Fare clic sul pulsante blu INVIA per mostrare la risposta pertinente.

6. Ultimo ma non meno importante, salva questo nuovo endpoint nella cartella che hai appena creato con il nome / gli elementi della richiesta (questo avrà senso in seguito).

Un endpoint in basso, altri 4 da percorrere :)

A rischio di rendere questo post troppo lungo, mi fermerò qui e rilascerò il resto come parte 2. L'impostazione principale è praticamente completa, da qui in poi aggiungeremo altri endpoint per un piccolo elenco di cose da fare che creeremo ( se non l'hai già capito). Spero che tu abbia imparato qualcosa da questo e spero che fai clic sulla parte successiva per saperne di più.

Vai alla Parte 2 →