Python: Implementazione della REST API con Flask
Questa documentazione fa parte della guida Creazione di una REST API. Consulta la guida completa qui: Guida passo-passo per costruire una REST API con Flask in Python.
👋 Benvenuto nella documentazione di Stackhero!
Stackhero offre una soluzione Python cloud pronta all'uso, progettata per semplificare il processo di deployment:
- Distribuisci la tua applicazione in produzione in pochi secondi con un semplice
git push.- Utilizza il tuo nome di dominio, con configurazione automatica del certificato HTTPS per connessioni sicure gestite direttamente da noi.
- Affidati a backup automatici, aggiornamenti con un clic e prezzi prevedibili, così puoi concentrarti sul tuo codice invece che sulla gestione dell'infrastruttura.
- Approfitta di elevate prestazioni e sicurezza su un'infrastruttura privata e dedicata. Il tuo ambiente è isolato e protetto.
Risparmia tempo e semplifica il tuo workflow: il tuo codice può essere operativo con il Python cloud hosting di Stackhero in soli 5 minuti.
Ora siete pronti a scrivere il codice della vostra API.
Create un file chiamato app.py e aggiungete questo codice:
import os
from dotenv import load_dotenv
from flask import Flask, jsonify, request
# Carica le variabili d'ambiente da .env per ambienti non di produzione
if os.environ.get('ENV') != 'production':
load_dotenv()
app = Flask(__name__)
# Esempio di dati tasks
tasks = [
{
'id': 1,
'title': 'Buy groceries',
'description': 'Milk, Cheese, Pizza, Fruits',
'done': False
},
{
'id': 2,
'title': 'Learn Python',
'description': 'Learn Python programming basics',
'done': False
}
]
@app.route('/api/tasks', methods=['GET'])
def get_tasks():
return jsonify({'tasks': tasks})
@app.route('/api/tasks/<int:task_id>', methods=['GET'])
def get_task(task_id):
task = [task for task in tasks if task['id'] == task_id]
if not task:
return jsonify({'error': 'Task not found'}), 404
return jsonify({'task': task[0]})
@app.route('/api/tasks', methods=['POST'])
def create_task():
if not request.json or 'title' not in request.json:
return jsonify({'error': 'Title is required'}), 400
task = {
'id': tasks[-1]['id'] + 1,
'title': request.json['title'],
'description': request.json.get('description', ""),
'done': False
}
tasks.append(task)
return jsonify({'task': task}), 201
if __name__ == '__main__':
if os.environ.get('ENV') == 'production':
app.run()
else:
app.run(host='0.0.0.0', port=8080, debug=True)
Potete avviare il server con:
python app.py
Con
host='0.0.0.0', la vostra API è accessibile dal browser quando utilizzate Code-Hero. Visitatehttp://<XXXXXX>.stackhero-network.com:8080/api/tasks, sostituendo<XXXXXX>con il vostro dominio Code-Hero.