映画リストビューの作成
ビューの作成
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 件表示されます。ブラウザを更新すると、映画リストがランダムに切り替わります。