logo oujood
🔍

Projet pratique : Créer une API REST avec Django

Transformez vos données en un service web accessible par n'importe quelle application mobile ou front-end.

OUJOOD.COM

C'est la touche finale de votre parcours. Après avoir construit un blog classique, nous allons maintenant l'ouvrir au monde extérieur. L'objectif est de permettre à une application tierce (comme une application mobile Android ou un site en React) de lire et de modifier vos articles via des données JSON. Pour cela, nous allons utiliser tout ce que nous avons appris sur Django REST Framework.

Étape 1 : Le traducteur (Serializer)

La première chose à faire est de dire à Django comment transformer vos articles en texte brut. On crée un fichier serializers.py. Je vous conseille d'utiliser le ModelSerializer pour ne pas avoir à lister manuellement chaque champ de votre base de données. C'est simple, rapide et efficace.

  📋 Copier le code

from rest_framework import serializers
from .models import Post

class PostSerializer(serializers.ModelSerializer):
    class Meta:
        model = Post
        fields = ['id', 'titre', 'auteur', 'contenu', 'date_pub']

Étape 2 : La logique (ViewSet)

Au lieu de créer plusieurs vues pour lister, créer ou supprimer, on regroupe tout dans un ModelViewSet. C'est le cerveau de votre API. Il sait exactement quoi faire selon que le client demande une liste (GET) ou envoie un nouvel article (POST).

  📋 Copier le code

from rest_framework import viewsets
from .models import Post
from .serializers import PostSerializer

class PostViewSet(viewsets.ModelViewSet):
    queryset = Post.objects.all()
    serializer_class = PostSerializer

Étape 3 : La carte routière (Router)

Pour finir, on utilise un DefaultRouter. Il va générer automatiquement toutes les URLs nécessaires. Vous n'avez plus besoin de vous soucier des chemins complexes : le routeur s'occupe de créer les points d'entrée /api/posts/ pour vous.

  📋 Copier le code

from django.urls import path, include
from rest_framework.routers import DefaultRouter
from .views import PostViewSet

router = DefaultRouter()
router.register(r'posts', PostViewSet)

urlpatterns = [
    path('api/', include(router.urls)),
]

Conclusion du voyage

Vous avez maintenant une application Django complète, sécurisée, testée et prête à communiquer avec le reste du web. Ce que vous avez appris ici constitue le socle du métier de développeur backend. N'arrêtez pas de pratiquer : chaque nouveau projet est une occasion d'affiner votre maîtrise de cet outil formidable.

Par carabde | Mis à jour le 09/05/2026