0Pricing
Python Academy · Leçon

Construire un point d’accès REST

Renvoyer des réponses JSON

Construire un point d’accès REST est une leçon Python Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Python Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Python Academy comprend 4 leçons au total.

Qu’est-ce qu’une API REST ?

Une API REST expose des ressources via HTTP en utilisant des verbes standard. Au lieu de pages HTML, elle renvoie des données, généralement au format JSON, que d’autres programmes peuvent utiliser.

from flask import Flask, jsonify
app = Flask(__name__)
# REST endpoints return data, not pages
print('REST APIs speak JSON over HTTP')

Renvoyer du JSON

jsonify() transforme un dictionnaire ou une liste Python en réponse JSON avec le type de contenu approprié.

from flask import Flask, jsonify
app = Flask(__name__)

@app.route('/api/status')
def status():
    return jsonify({'status': 'ok'})
print('jsonify builds a JSON response')

Conversion automatique des dictionnaires

Flask moderne convertit également automatiquement un dictionnaire renvoyé en JSON ; vous pouvez donc souvent vous passer de jsonify().

from flask import Flask
app = Flask(__name__)

@app.route('/api/ping')
def ping():
    return {'message': 'pong'}
print('Returning a dict yields JSON')

Renvoyer une liste

Pour renvoyer une collection, transmettez une liste à jsonify(). Chaque élément est généralement un dictionnaire représentant une ressource.

from flask import Flask, jsonify
app = Flask(__name__)
books = [{'id': 1, 'title': 'A'}, {'id': 2, 'title': 'B'}]

@app.route('/api/books')
def list_books():
    return jsonify(books)
print('Return a list of resources')

GET d’une ressource

Utilisez un composant dynamique de l’URL pour récupérer un élément unique à partir de son identifiant. Renvoyez 404 s’il n’existe pas.

from flask import Flask, jsonify
app = Flask(__name__)
books = {1: {'id': 1, 'title': 'A'}}

@app.route('/api/books/<int:bid>')
def get_book(bid):
    book = books.get(bid)
    if book is None:
        return jsonify({'error': 'not found'}), 404
    return jsonify(book)
print('GET /api/books/1')

Créer avec POST

Une requête POST crée une ressource. Lisez le corps JSON, construisez le nouvel élément et renvoyez-le avec l’état 201 Créé.

from flask import Flask, request, jsonify
app = Flask(__name__)
books = []

@app.route('/api/books', methods=['POST'])
def create_book():
    data = request.get_json()
    book = {'id': len(books) + 1, 'title': data['title']}
    books.append(book)
    return jsonify(book), 201
print('POST creates and returns 201')

Modifier avec PUT

PUT remplace ou modifie une ressource existante identifiée par son identifiant.

from flask import Flask, request, jsonify
app = Flask(__name__)
books = {1: {'id': 1, 'title': 'A'}}

@app.route('/api/books/<int:bid>', methods=['PUT'])
def update_book(bid):
    if bid not in books:
        return jsonify({'error': 'not found'}), 404
    books[bid]['title'] = request.get_json()['title']
    return jsonify(books[bid])
print('PUT updates a resource')

Supprimer avec DELETE

DELETE supprime une ressource. Renvoyer l’état 204 Aucun contenu est courant en cas de réussite.

from flask import Flask, jsonify
app = Flask(__name__)
books = {1: {'id': 1, 'title': 'A'}}

@app.route('/api/books/<int:bid>', methods=['DELETE'])
def delete_book(bid):
    if bid in books:
        del books[bid]
        return '', 204
    return jsonify({'error': 'not found'}), 404
print('DELETE removes a resource')

L’importance des codes d’état

REST s’appuie sur les codes d’état HTTP : 200 OK, 201 Créé, 204 Aucun contenu, 400 Mauvaise requête, 404 Introuvable.

# 200 success
# 201 created
# 204 no content
# 400 bad request
# 404 not found
print('Use the right status code')

Valider le corps de la requête

Vérifiez la présence des champs obligatoires avant la création. Renvoyez 400 avec un message d’erreur lorsque le corps est invalide.

from flask import Flask, request, jsonify
app = Flask(__name__)

@app.route('/api/books', methods=['POST'])
def create_book():
    data = request.get_json(silent=True) or {}
    if 'title' not in data:
        return jsonify({'error': 'title required'}), 400
    return jsonify(data), 201
print('Validate JSON before using it')

Des réponses cohérentes

Les bonnes API renvoient une structure prévisible, en enveloppant souvent les données et les erreurs de la même manière à chaque fois afin que les clients puissent s’y fier.

from flask import jsonify
# Success: {'data': {...}}
# Error:   {'error': 'message'}
# Keep the shape consistent across endpoints
print('Predictable shapes help clients')

Vérification rapide

Vérifiez vos connaissances sur REST.

Récapitulatif

Vous avez créé un point d’accès REST JSON.

  • jsonify() (ou un dictionnaire renvoyé) produit des réponses JSON
  • Associez les verbes HTTP : GET lit, POST crée, PUT modifie, DELETE supprime
  • Renvoyez des codes d’état significatifs comme 201, 204, 400 et 404
  • Validez le corps de la requête et gardez des réponses cohérentes

Questions Fréquemment Posées

La leçon « Construire un point d’accès REST » est-elle gratuite ?

Oui — le texte complet de « Construire un point d’accès REST » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Python Academy, passe à CoddyKit PRO. Le cours Python Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Construire un point d’accès REST » ?

Renvoyer des réponses JSON Tu pratiques Python Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Python Academy ?

Aucune expérience préalable n'est requise. Python Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Construire un point d’accès REST » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Python Academy ?

Oui. Chaque leçon Python Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Routes et vues
  2. Modèles avec Jinja2
  3. Formulaires et données des requêtes
  4. Construire un point d’accès REST
← Retour à Python Academy