簡單的準系統只讀 API
假設你有一個如下所示的模型,我們將使用由 Django REST Framework(DRF
)驅動的簡單準系統只讀 API 執行。
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)
序列化程式是將從 Django 模型(在本例中為 FeedItem
)獲取所有資訊並將其轉換為 JSON 的元件。它與在 Django 中建立表單類非常相似。如果你有任何經驗,這將是非常舒適的。
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 提供了許多檢視類來處理各種用例。在這個例子中,我們只會有一個只讀 API,因此,我們將使用 DRF 的 ListAPIView
的單個子類,而不是使用更全面的檢視集或一堆相關的通用檢視。
此類的目的是將資料與序列化程式連結,並將它們全部包裝在一起以形成響應物件。
from rest_framework import generics
from . import serializers, models
class FeedItemList(generics.ListAPIView):
serializer_class = serializers.FeedItemSerializer
queryset = models.FeedItem.objects.all()
urls.py
確保將路線指向 DRF 檢視。
from django.conf.urls import url
from . import views
urlpatterns = [
...
url(r'path/to/api', views.FeedItemList.as_view()),
]