サーチ…


シンプルなベアボーンの読み取り専用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に変換するFeedItemです。 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()),
]


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow