Création d'une API simple avec le framework Bottle
Dans cette activité, vous allez créer une API simple en utilisant le framework Bottle. Cette API vous permettra de gérer une liste d'articles avec des fonctionnalités de création, de lecture, de mise à jour et de suppression (CRUD).
Assurez-vous que Bottle est installé. Si ce n'est pas le cas, utilisez la commande suivante :
pip install bottle
Créez un fichier Python nommé api.py
et ajoutez le code suivant :
from bottle import Bottle, run, response, request
app = Bottle()
articles = []
@app.route('/articles', method='GET')
def get_articles():
response.content_type = 'application/json'
return {'articles': articles}
@app.route('/articles', method='POST')
def create_article():
article = request.json
articles.append(article)
response.status = 201
return article
@app.route('/articles/<index>', method='PUT')
def update_article(index):
article = request.json
articles[int(index)] = article
return article
@app.route('/articles/<index>', method='DELETE')
def delete_article(index):
articles.pop(int(index))
response.status = 204
return {'message': 'Article deleted'}
run(app, host='localhost', port=8080)
Pour tester l'API, vous pouvez utiliser des outils comme Postman ou curl. Voici comment effectuer chaque opération :
GET http://localhost:8080/articles
POST http://localhost:8080/articles
Body: {"title": "Mon Article", "content": "Contenu de l'article"}
PUT http://localhost:8080/articles/0
Body: {"title": "Article Mis à Jour", "content": "Nouveau contenu"}
DELETE http://localhost:8080/articles/0
Vous avez maintenant créé une API simple avec Bottle qui gère une liste d'articles. Vous pouvez étendre cette API en ajoutant des fonctionnalités supplémentaires, comme la persistance des données avec une base de données, l'authentification des utilisateurs, et plus encore !
Dans ce cours, nous allons examiner en détail le code de l'activité précédente sur la création d'une API simple avec Bottle. Nous allons décomposer chaque partie du code et expliquer les bibliothèques utilisées ainsi que leur logique.
Nous avons importé les éléments suivants de la bibliothèque Bottle :
Voici comment nous avons créé notre application :
app = Bottle()
Cette ligne crée une instance de l'application Bottle, qui nous permettra de définir des routes et de gérer les requêtes.
Nous avons défini une liste vide pour stocker nos articles :
articles = []
Cette liste contiendra les articles au format JSON que nous allons manipuler via notre API.
Nous avons créé plusieurs routes pour gérer les opérations CRUD :
@app.route('/articles', method='GET')
def get_articles():
response.content_type = 'application/json'
return {'articles': articles}
Cette route gère les requêtes GET à l'URL /articles
. Elle retourne tous les articles au format JSON.
@app.route('/articles', method='POST')
def create_article():
article = request.json
articles.append(article)
response.status = 201
return article
Cette route gère les requêtes POST à l'URL /articles
. Elle récupère les données JSON envoyées par le client, les ajoute à la liste articles
, et retourne le nouvel article avec un statut HTTP 201 (Créé).
@app.route('/articles/<index>', method='PUT')
def update_article(index):
article = request.json
articles[int(index)] = article
return article
Cette route gère les requêtes PUT à l'URL /articles/<index>
. Elle met à jour l'article à l'index spécifié avec les nouvelles données envoyées par le client.
@app.route('/articles/<index>', method='DELETE')
def delete_article(index):
articles.pop(int(index))
response.status = 204
return {'message': 'Article deleted'}
Cette route gère les requêtes DELETE à l'URL /articles/<index>
. Elle supprime l'article à l'index spécifié et retourne un statut HTTP 204 (Pas de contenu).
Enfin, nous démarrons le serveur avec la commande suivante :
run(app, host='localhost', port=8080)
Cette ligne exécute l'application sur localhost
à port 8080
, rendant l'API accessible.
Vous avez maintenant une compréhension détaillée du code de l'API simple créée avec Bottle. Vous pouvez maintenant étendre cette API en ajoutant des fonctionnalités supplémentaires, comme la persistance des données avec une base de données ou des fonctionnalités de sécurité. N'hésitez pas à explorer davantage les possibilités offertes par Bottle !
Abonnez-vous maintenant et recevez notre newsletter hebdomadaire avec des matériaux éducatifs, de nouveaux cours, des articles intéressants, des livres populaires et bien plus encore !