Szukaj…


Prosty interfejs API tylko do odczytu

Zakładając, że masz model wyglądający następująco, uruchomimy prosty interfejs API typu „ tylko do odczytu” typu barebone obsługiwany przez 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)

Serializator to składnik, który pobiera wszystkie informacje z modelu Django (w tym przypadku FeedItem ) i przekształca je w JSON. Jest bardzo podobny do tworzenia klas formularzy w Django. Jeśli masz w tym jakieś doświadczenie, będzie to dla ciebie bardzo wygodne.

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 oferuje wiele klas widoków do obsługi różnych przypadków użycia. W tym przykładzie będziemy mieć tylko interfejs API tylko do odczytu , więc zamiast korzystać z bardziej kompleksowego zestawu widoków lub wiązki powiązanych widoków ogólnych, użyjemy jednej podklasy ListAPIView DRF.

Celem tej klasy jest połączenie danych z serializatorem i zawinięcie ich w całość dla obiektu odpowiedzi.

from rest_framework import generics
from . import serializers, models

class FeedItemList(generics.ListAPIView):
    serializer_class = serializers.FeedItemSerializer
    queryset = models.FeedItem.objects.all()

urls.py

Pamiętaj, aby wskazać trasę do widoku DRF.

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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow