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


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow