Django
Django Rest Framework
Zoeken…
Eenvoudige barebones alleen-lezen API
Ervan uitgaande dat je een model hebt dat er als volgt uitziet, gaan we aan de slag met een eenvoudige barebones alleen-lezen API aangedreven door 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)
De serializer is het onderdeel dat alle informatie van het Django-model (in dit geval het FeedItem
) FeedItem
en omzet in JSON. Het lijkt erg op het maken van formulierklassen in Django. Als je daar enige ervaring mee hebt, zal dit zeer comfortabel voor je zijn.
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 biedt veel weergaveklassen voor verschillende gebruikssituaties. In dit voorbeeld hebben we alleen een alleen-lezen API, dus in plaats van een uitgebreidere viewset of een aantal verwante generieke weergaven te gebruiken, gebruiken we een enkele subklasse van ListAPIView
van DRF.
Het doel van deze klasse is om de gegevens aan de serializer te koppelen en alles samen te voegen voor een responsobject.
from rest_framework import generics
from . import serializers, models
class FeedItemList(generics.ListAPIView):
serializer_class = serializers.FeedItemSerializer
queryset = models.FeedItem.objects.all()
urls.py
Zorg ervoor dat je je route op je DRF-weergave richt.
from django.conf.urls import url
from . import views
urlpatterns = [
...
url(r'path/to/api', views.FeedItemList.as_view()),
]