Django
Django Rest Framework
Recherche…
API simple en lecture seule
En supposant que vous ayez un modèle qui ressemble à ce qui suit, nous allons nous lancer dans une simple API en lecture seule barebone pilotée par Django REST Framework ("DRF").
models.py
class FeedItem(models.Model):
title = models.CharField(max_length=100, blank=True)
url = models.URLField(blank=True)
style = models.CharField(max_length=100, blank=True)
description = models.TextField(blank=True)
Le sérialiseur est le composant qui prendra toutes les informations du modèle Django (dans ce cas, le FeedItem
) et le transformera en JSON. Il est très similaire à la création de classes de formulaires dans Django. Si vous avez de l'expérience à ce sujet, ce sera très confortable pour vous.
serializers.py
from rest_framework import serializers
from . import models
class FeedItemSerializer(serializers.ModelSerializer):
class Meta:
model = models.FeedItem
fields = ('title', 'url', 'description', 'style')
views.py
DRF offre de nombreuses classes d'affichage pour gérer une variété de cas d'utilisation. Dans cet exemple, nous allons seulement avoir une API en lecture seule , donc, plutôt que d'utiliser un ensemble de vues plus complet ou un ensemble de vues génériques associées, nous utiliserons une seule sous-classe de ListAPIView
de DRF.
Le but de cette classe est de lier les données au sérialiseur et de les regrouper pour obtenir un objet réponse.
from rest_framework import generics
from . import serializers, models
class FeedItemList(generics.ListAPIView):
serializer_class = serializers.FeedItemSerializer
queryset = models.FeedItem.objects.all()
urls.py
Assurez-vous de diriger votre itinéraire vers votre vue DRF.
from django.conf.urls import url
from . import views
urlpatterns = [
...
url(r'path/to/api', views.FeedItemList.as_view()),
]