View on GitHub

映画リストビューの作成

Home

映画リストビューの作成

ビューの作成

src/backend/api/online/views.py

from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
from rest_framework.permissions import AllowAny

from .models import Movie
from .mappers import MovieMapper


class MoviesView(APIView):
    """映画リストビュー"""
    permission_classes = (AllowAny,)

    def get(self, request, format=None):
        """
        映画リストを取得する。

        Responses
        ---------
        movies : json
            映画リスト
        """
        # オブジェクトの取得
        movies = Movie.objects.order_by('?')[:20]\
            .prefetch_related('movie_genres__genre')

        # レスポンス
        movies_dict = [
            MovieMapper(movie).as_dict() for movie in movies
        ]
        data = {
            'movies': movies_dict,
        }
        return Response(data, status.HTTP_200_OK)

URL のマッピング

src/backend/api/online/urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('movies/', views.MoviesView.as_view()),
]

src/backend/config/urls.py

......
urlpatterns = [
    path("api/accounts/", include("api.accounts.urls")),
    path("api/online/", include("api.online.urls")),  # <- 追加
]
......

バックエンドサーバを起動した状態で、ブラウザで下記 URL にアクセスしてください。

映画データがランダムに 20 件表示されます。ブラウザを更新すると、映画リストがランダムに切り替わります。