Introduzione
In questo tutorial, imparerete come creare un semplice API REST utilizzando Flask, un framework web leggero scritto in Python. Vedremo i fondamenti per impostare un’applicazione Flask, definire rotte, gestire richieste e restituire risposte JSON. By the end of this tutorial, you will have a working API that you can extend and integrate with other applications.
Prerequisiti
-
Un server in esecuzione su Ubuntu e un utente non amministratore con diritti sudo e un firewall attivo. Per istruzioni su come impostare questo setup, scegliete la vostra distribuzione da questo elenco e seguite la nostra guida di configurazione iniziale del server. Assicuratevi di lavorare con una versione supportata di Ubuntu.
-
Conoscenza della riga di comando di Linux. Per un approcio o un aggiornamento alla riga di comando, puoi visitare questo guide sulla primavera di Linux
-
Un’introduzione di base alla programmazione in Python.
-
Python 3.7 o successivo installato sul tuo sistema Ubuntu. Per imparare come eseguire un script Python su Ubuntu, puoi fare riferimento al nostro tutorial sulla Come eseguire un script Python su Ubuntu.
Step 1 — Setting Up Your Flask Environment
Ubuntu 24.04 include Python 3 come default. Apri il terminale e esegui il seguente comando per controllare la installazione di Python 3:
Se Python 3 è già installato sulla tua macchina, il comando precedente restituirà la versione corrente dell’installazione di Python 3. In caso contrario, puoi eseguire il seguente comando per installare Python 3:
Successivamente, devi installare il package installer pip
sul tuo sistema:
Una volta installato pip
, installiamo Flask.
Installeremo Flask tramite pip
. È consigliato fare questo in un ambiente virtuale per evitare conflitti con altri pacchetti sul tuo sistema.
Step 2 – Creare un’applicazione Flask
La prossima step è scrivere il codice Python per l’applicazione Flask. Per creare un nuovo script, navigare nella directory di tuo gradimento:
Una volta nella directory, creare un nuovo file Python, app.py,
e importare Flask. Poi, inizializzare un’applicazione Flask e creare una rotta base.
Ciò aprirà un editor di testo iniziale. Scrivi il tuo logica qui o copia il seguente codice:
Step 3 — Creazione di rotte RESTful
In questa sezione, definiremo rotte nella nostra applicazione Flask che corrispondono agli azioni differenti che un utente può eseguire sull’API. Ogni rotta gestirà un metodo HTTP specifico.
GET
, POST
, PUT
, e DELETE
. Questi metodi corrispondono alle quattro operazioni base di memoria persistente – spesso chiamate CRUD (Create, Read, Update, Delete).
Aggiungi le seguenti rotte al tuo script Python app.py
:
Scopriamo di più sulle funzioni di ogni operazione:
-
Import Flask: Il codice importa i componenti necessari da Flask:
Flask
,jsonify
, erequest
. -
Data Store in Memoria:
items
è una semplice lista di dizionari che funge da data store temporaneo per l’API. Ogni elemento ha unid
e unname
. -
GET
/api/items
: Quando viene effettuata una richiestaGET
a/api/items
, il server restituisce un elenco di tutti gli elementi nel data store degli items. Questo è utile per recuperare tutte le risorse in una collezione. -
POST
/api/items
: Una richiesta POST a/api/items
consente al client di creare un nuovo elemento. Il server si aspetta un oggetto JSON contenente i dettagli del nuovo elemento nel corpo della richiesta. Dopo aver creato l’elemento, il server risponde con l’elemento appena creato e un codice di stato201 Created
. -
PUT
/api/items/<int:item_id>
: Una richiestaPUT
a/api/items/<item_id>
viene utilizzata per aggiornare un elemento esistente con l’item_id
specificato. Il client invia i dati aggiornati nel corpo della richiesta, e il server modifica l’elemento esistente. Se l’elemento non viene trovato, il server restituisce un errore404 Not Found
. -
DELETE
/api/items/<int:item_id>
: Una richiestaDELETE
a/api/items/<item_id>
rimuove l’elemento con l’item_id
specificato dal deposito dati. Se l’elemento viene eliminato con successo, il server risponde con un codice di stato204 No Content
, indicando che l’eliminazione è avvenuta con successo e che non c’è ulteriore contenuto da restituire. -
Running the Application: Il blocco
if __name__ == "__main__":
garantisce che l’applicazione Flask venga eseguita quando lo script viene eseguito direttamente.
Passo 4 — Avvio e Test dell’API
Avviare il server Flask utilizzando il seguente comando:
Dovresti notare il server Flask in esecuzione con l’output seguente:
Dall’output precedente puoi notare che il server è in esecuzione su http://127.0.0.1
e ascolta sulla porta 5000
.
Ora, puoi testare gli endpoint usando curl
, Postman, o un altro client HTTP. In questo tutorial userai curl
per testare gli endpoint e inviare richieste HTTP.
Apri un’altra console Ubuntu e esegui i comandi curl
seguenti uno dopo l’altro:
- GET:
curl http://127.0.0.1:5000/api/items
- POST:
curl -X POST -H "Content-Type: application/json" -d '{"name": "This is item 3"}' http://127.0.0.1:5000/api/items
- PUT:
curl -X PUT -H "Content-Type: application/json" -d '{"name": "This is updated item 1"}' http://127.0.0.1:5000/api/items/1
- DELETE:
curl -X DELETE http://127.0.0.1:5000/api/items/1
Ora, vediamo in azione ognuno di questi comandi:
Notare che il server restituisce una lista di tutti gli elementi nel database degli item.
Utilizzando il metodo POST
, aggiungeremo un nuovo elemento al data store.
Nota: Sul tuo altro console dove il tuo server Flask è in esecuzione, noterai tutte le richieste HTTP in esecuzione e i loro codici di risposta anche.
Questa è una grande maniera per monitorare, debug e risolvere problemi con il server.
Prossimamente, eseguiamo una richiesta PUT
. Una richiesta PUT
a /api/items/<item_id>
aggiornerà l’elemento esistente con l’item_id
specificato.
Ora, eseguiamo una richiesta GET
per vedere l’elemento aggiornato 1.
Alla fine, eseguiamo una richiesta DELETE
per eliminare un elemento dal data store.
Questo eliminerà l’elemento 1 dal data store.
Per verificare questo, eseguiamo una richiesta GET
.
Notare che l’elemento 1 non è più presente e è stato cancellato definitivamente.
Conclusione
In questo tutorial, hai creato una semplice app REST con Flask. Ora puoi estendere questa API con route aggiuntive, integrare una base dati o deployarla su una piattaforma cloud come DigitalOcean. Flask è una potente piattaforma per la creazione di API veloci e efficienti, e con questi principi base, sei pronto a iniziare a costruire applicazioni più complesse.
Source:
https://www.digitalocean.com/community/tutorials/create-a-rest-api-using-flask-on-ubuntu