OUJOOD.COM
Définir les URLs d'une API est un exercice un peu différent de celui des pages web classiques. Ici, on ne cherche pas à créer des adresses jolies pour les humains, mais des points d'accès logiques pour des machines. Une bonne structure d'URL est la base d'une API facile à utiliser et à maintenir sur le long terme.
La structure classique d'un endpoint
Je vous suggère de toujours regrouper vos routes d'API sous un préfixe commun, généralement api/. Cela permet de séparer clairement la partie "site web" de la partie "service de données". Si vous prévoyez que votre application va évoluer, ajouter un numéro de version (comme v1/) est une excellente habitude.
from django.urls import path
from . import views
urlpatterns = [
# Route pour la liste des articles
path('api/v1/articles/', views.ArticleList.as_view(), name='api-article-list'),
# Route pour un article précis
path('api/v1/articles/<int:pk>/', views.ArticleDetail.as_view(), name='api-article-detail'),
]
Inclure les URLs de DRF
Django REST Framework possède ses propres vues internes, notamment pour gérer la connexion à l'interface de test (l'API navigable). Pour en profiter, vous devez inclure les URLs de rest_framework dans votre fichier principal. C'est ce qui permet d'avoir le petit bouton "Login" en haut à droite de vos pages de test API.
from django.urls import path, include
urlpatterns = [
# ... vos autres routes
path('api-auth/', include('rest_framework.urls')),
]
L'importance du nommage
Ne négligez pas l'argument name dans vos chemins. Même pour une API, vous aurez besoin de générer des URLs dynamiquement (par exemple dans vos tests ou vos sérialiseurs). Utiliser des noms clairs comme api-article-list rend votre code beaucoup plus lisible que de manipuler des chaînes de caractères en dur.
Maintenant que vos routes sont tracées, il faut s'assurer que n'importe qui ne peut pas modifier vos données. C'est le rôle de l'authentification API, que nous allons aborder dès maintenant.
Par carabde | Mis à jour le 08/05/2026