Python: De REST API implementeren met Flask
Deze documentatie maakt deel uit van de Een REST API maken-gids. Bekijk de volledige gids hier: Stapsgewijze handleiding voor het bouwen van een REST API met Flask in Python.
👋 Welkom bij de Stackhero-documentatie!
Stackhero biedt een kant-en-klare Python cloud oplossing die uw deploymentproces vereenvoudigt:
- Deploy uw applicatie naar productie in enkele seconden met een simpele
git push.- Gebruik uw eigen domeinnaam, met automatische HTTPS-certificaatconfiguratie voor veilige verbindingen die volledig voor u geregeld worden.
- Profiteer van automatische back-ups, one-click updates en voorspelbare prijzen, zodat u zich kunt richten op uw code en niet op infrastructuurbeheer.
- Geniet van uitstekende performance en security op een private, dedicated infrastructuur. Uw omgeving is geïsoleerd en beveiligd.
Bespaar tijd en vereenvoudig uw workflow: uw code draait binnen 5 minuten op Stackhero's Python cloud hosting.
Nu bent u klaar om uw API-code te schrijven.
Maak een bestand genaamd app.py aan en voeg deze code toe:
import os
from dotenv import load_dotenv
from flask import Flask, jsonify, request
# Laad omgevingsvariabelen uit .env voor niet-productieomgevingen
if os.environ.get('ENV') != 'production':
load_dotenv()
app = Flask(__name__)
# Voorbeeld taken-data
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)
U kunt de server starten met:
python app.py
Met
host='0.0.0.0'is uw API toegankelijk via uw browser wanneer u Code-Hero gebruikt. Ga naarhttp://<XXXXXX>.stackhero-network.com:8080/api/tasks, waarbij u<XXXXXX>vervangt door uw Code-Hero domein.