Python: Implémentation de l'API REST avec Flask
Cette documentation fait partie du guide Création d'une API REST. Consultez le guide complet ici : Guide étape par étape pour bâtir une API REST avec Flask en Python.
👋 Bienvenue dans la documentation Stackhero !
Stackhero offre une solution Python cloud clé en main conçue pour simplifier vos déploiements :
- Déployez votre application en production en quelques secondes grâce à un simple
git push.- Utilisez votre propre nom de domaine, avec une configuration automatique du certificat HTTPS pour des connexions sécurisées gérées pour vous.
- Profitez de sauvegardes automatiques, de mises à jour en un clic et d'une tarification prévisible, afin que vous puissiez vous concentrer sur votre code plutôt que sur la gestion de l'infrastructure.
- Bénéficiez d'une performance et d'une sécurité accrues sur une infrastructure privée et dédiée. Votre environnement est isolé et protégé.
Gagnez du temps et simplifiez votre workflow : votre code peut être en ligne avec l'hébergement Python cloud de Stackhero en seulement 5 minutes.
Vous êtes maintenant prêt à écrire le code de votre API.
Créez un fichier nommé app.py et ajoutez ce code :
import os
from dotenv import load_dotenv
from flask import Flask, jsonify, request
# Charger les variables d'environnement depuis .env pour les environnements hors production
if os.environ.get('ENV') != 'production':
load_dotenv()
app = Flask(__name__)
# Exemple de données de tâches
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)
Vous pouvez démarrer le serveur avec :
python app.py
Avec
host='0.0.0.0', votre API est accessible via votre navigateur lorsque vous utilisez Code-Hero. Rendez-vous surhttp://<XXXXXX>.stackhero-network.com:8080/api/tasks, en remplaçant<XXXXXX>par votre domaine Code-Hero.