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