Se rendre au contenu

Django REST Framework 3.9

OpenAPI et permissions composables
18 octobre 2018 par
Django REST Framework 3.9
Makersquad

Date de sortie : 18 octobre 2018

Documentation officielle : https://www.django-rest-framework.org/community/release-notes/#39x-series

DRF 3.9 marque un tournant dans la gestion des schémas d’API : le support natif d’OpenAPI fait son entrée, sans dépendance tierce. En prime, la gestion des permissions reçoit une refonte bienvenue qui permet enfin de les combiner de façon naturelle. Une mise à jour à ne pas manquer.


Les nouveautés principales

Support natif d’OpenAPI

DRF intègre désormais un générateur de schéma OpenAPI directement dans le framework. Deux nouveaux renderers sont disponibles : OpenAPIRenderer (YAML) et JSONOpenAPIRenderer (JSON).

from rest_framework.schemas import get_schema_view
from rest_framework.renderers import JSONOpenAPIRenderer

schema_view = get_schema_view(
    title="Server Monitoring API",
    url="https://www.example.org/api/",
    renderer_classes=[JSONOpenAPIRenderer],
)

La commande de gestion generateschema prend maintenant en charge l’option --format openapi pour générer le schéma directement depuis la CLI :

python manage.py generateschema --format openapi > openapi.yml


Permissions composables avec & et |

C’est la fonctionnalité qui fait plaisir à voir. Jusqu’ici, combiner des classes de permission nécessitait d’en écrire une nouvelle à la main. DRF 3.9 introduit les opérateurs & (ET) et | (OU) pour composer les permissions de façon déclarative.

from rest_framework.permissions import IsAuthenticated, IsAdminUser
from myapp.permissions import ReadOnly

# L'utilisateur doit être authentifié ET (lecture seule OU admin)
permission_classes = [IsAuthenticated & (ReadOnly | IsAdminUser)]

Le code se lit presque comme une règle métier. Moins de boilerplate, plus de clarté.


Actions supplémentaires visibles dans l’API navigable

Les @action définies sur les ViewSets apparaissent maintenant dans le menu déroulant de l’API navigable (le rendu HTML par défaut de DRF). Pratique pour explorer et tester une API directement depuis le navigateur.


Support de Django 2.1

DRF 3.9 est compatible avec Django 2.1, sorti le même mois. La compatibilité avec Django 1.11 est maintenue pour les projets qui n’ont pas encore migré.


Échanger avec un expert Django

Nous revenons vers vous sous 24h.


Chez Makersquad, nous accompagnons nos clients dans la conception d’application modernes et performantes avec Django .Que vous souhaitiez lancer une nouvelle API, moderniser une architecture existante ou améliorer les performances de vos services backend, notre équipe met son expertise à votre disposition pour concevoir des solutions fiables, rapides et parfaitement adaptées à vos enjeux métier.


À retenir

DRF 3.9 apporte deux fonctionnalités structurantes : la génération de schémas OpenAPI sans dépendance externe et la composition de permissions avec une syntaxe enfin lisible. Si tu génères encore ta documentation d’API à la main ou que tu jongle avec des classes de permission custom pour combiner des règles simples, cette version est faite pour toi.

Django REST Framework 3.8
Le grand ménage de printemps