簡單的準系統只讀 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()),
]