Python: De REST API implementeren met Flask
Deze documentatie maakt deel uit van de Een REST API maken-gids. Bekijk de volledige gids hier: Hoe een REST API te maken met Flask.
👋 Welkom bij de Stackhero-documentatie!
Stackhero biedt een kant-en-klare Python cloud oplossing die tal van voordelen biedt, waaronder:
- Implementeer uw applicatie in seconden met een eenvoudige
git push.- Gebruik uw eigen domeinnaam en profiteer van de automatische configuratie van HTTPS-certificaten voor verbeterde beveiliging.
- Geniet van gemoedsrust met automatische back-ups, updates met één klik, en eenvoudige, transparante en voorspelbare prijzen.
- Krijg optimale prestaties en robuuste beveiliging dankzij een privé en dedicated VM.
Bespaar tijd en vereenvoudig uw leven: het kost slechts 5 minuten om de Python cloud hosting oplossing van Stackhero te proberen!
Laten we nu in de code duiken!
Maak een bestand genaamd app.py en voeg de volgende code in:
import os
from dotenv import load_dotenv
from flask import Flask, jsonify, request
# Laad omgevingsvariabelen uit het .env bestand wanneer niet in productie
if os.environ.get('ENV') != 'production':
load_dotenv()
# Maak de Flask app
app = Flask(__name__)
# Voorbeeld dataset
tasks = [
{
'id': 1,
'title': 'Boodschappen doen',
'description': 'Melk, Kaas, Pizza, Fruit',
'done': False
},
{
'id': 2,
'title': 'Python leren',
'description': 'Leer de basis van Python programmeren',
'done': False
}
]
# Route '/api/tasks' (GET) om alle taken te lijst
@app.route('/api/tasks', methods=['GET'])
def get_tasks():
return jsonify({'tasks': tasks})
# Route '/api/tasks/<task_id>' (GET) om een specifieke taak op te halen via ID
@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 len(task) == 0:
return jsonify({'error': 'Taak niet gevonden'}), 404
return jsonify({'task': task[0]})
# Route '/api/tasks' (POST) om een nieuwe taak te maken
@app.route('/api/tasks', methods=['POST'])
def create_task():
if not request.json or 'title' not in request.json:
return jsonify({'error': 'Titel is vereist'}), 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
# Start de API server
if __name__ == '__main__':
if os.environ.get('ENV') == 'production':
app.run()
else:
app.run(host='0.0.0.0', port=8080, debug=True)
Om de server te starten, voert u uit:
python app.py
Met de
host='0.0.0.0'optie kunt u ook uw API openen met uw browser wanneer u Code-Hero gebruikt. Navigeer eenvoudig naarhttp://<XXXXXX>.stackhero-network.com:8080/api/tasks, waarbij u<XXXXXX>vervangt door uw Code-Hero domein.