Django API simple en lecture seule


Exemple

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()),
]