この記事の続きです。
programming-gogogogo.hatenablog.com
こちらの動画を見ながらPythonのDjango REST framework(DRF)について勉強しています。
GenericAPIViewでPOSTメソッドが動くようになったので次にUPDATE処理を実装します。
GenericAPIViewクラスを以下のように修正します。
class GenericAPIView(generics.GenericAPIView, mixins.ListModelMixin, mixins.CreateModelMixin, mixins.UpdateModelMixin, mixins.RetrieveModelMixin, mixins.DestroyModelMixin): serializer_class = ArticleSerializer queryset = Article.objects.all() lookup_field = 'id' def get(self, request, id=None): if id: return self.retrieve(request) else: return self.list(request) def post(self, request): return self.create(request) def put(self, request, id=None): return self.update(request, id) def delete(self, request, id): return self.destoroy(request, id)
api_basic/urls.pyを以下のように修正します。
from django.urls import path from .views import article_list, article_detail, ArticleAPIView, ArticleDetails, GenericAPIView urlpatterns = [ path('article/', ArticleAPIView.as_view()), path('detail/<int:id>/', ArticleDetails.as_view()), path('generic/article/<int:id>/', GenericAPIView.as_view(),) ]
Postmanで動作確認したところ、想定通り更新処理が成功しました。
また、generic/article/1でGETのリクエストを送るとIDが1のデータが取得できることが確認でき
generic/article/2でDELETEのリクエストを送るとID2のデータを削除できることを確認しました。
DRFではCRUD処理を実装するだけでもいくつかの実装方法があるようです。
それぞれ長所短所を勉強しつつベストプラクティスに沿った実装ができるように学んでいきたいと思います。
次はDRFでの認証の部分を実装していきます。