Django REST frameworkによるWebサービス開発(はじめてのPOST)

:2018年01月04日

:Django REST framework

:PythonDjango REST frameworkPOST

Django REST frameworkによるWebサービス開発(はじめてのPOST)

本レッスンのゴール

  • POST に対応した簡単な WebAPI を実装する。
POINT

GET, POST とは HTTP のメソッドで、主な用途は以下の通りです。

  • GET : (サーバー等から)情報を取得
  • POST : (データベース等に)新規に情報を生成

前提条件

  • Django REST framework による Web サービス開発の足場作りが完了している事。
  • アプリケーションベースが既に作成済みである事。

全体の流れ

以下の流れで進めます。

  1. View の実装
  2. 動作確認

アクション

1. View の実装

こちらで実装した myrestapi/views.py に、以下のコードを実装します。

from rest_framework.views import APIView
from rest_framework.decorators import api_view
from rest_framework.response import Response

from rest_framework import status

class HelloWorld(APIView):
"""
クラスベースの APIView です。
"""
def get(self, request, format=None):
return Response({"message": "Hello World!!"},
status=status.HTTP_200_OK)

    def post(self, request, format=None):
        request_data = request.data
        return Response({"message": request_data["message"]},
                        status=status.HTTP_201_CREATED)

@api_view(['GET', 'POST'])
def hello_world(request):
"""
関数ベースの APIView です。
"""
if request.method == 'GET':
return Response({"message": "Hello function base APIView GET!!"},
status=status.HTTP_200_OK)
elif request.method == 'POST':
if request.data:
request_data = request.data
return Response({"message": request_data["message"]},
status=status.HTTP_201_CREATED)

主な追加実装内容は、POST でのアクセスに対応する処理と、レスポンスコードの指定です。

ここまでで、View の実装は完了です。

3. 動作確認

Terminal にて以下のコマンドでテスト用サーバーを起動します。

$ python manage.py runserver

ブラウザを起動し、http://127.0.0.1:8000/myrestapiにアクセスすると 以下のような画面が表示されます。

myrestapi

次に、Content のテキストボックスに以下のように入力して POST ボタンを押下します。

Post

すると、以下のような画面が表示されるかと思います。

Result

これで、関数ベースの APIView の POST の動作確認は完了です。 次に、クラスベースの APIView の動作確認を行います。 http://127.0.0.1:8000/myrestapi/helloにアクセスしてください。

hello

Content に以下のように入力して POST を押下します。

POST

すると、以下のような画面が表示されるかと思います。

Result

これで、クラスベースの APIView の POST の動作確認完了です。

以上で、POST の動作確認は終了です。