Start App-Dev from 35.

35からはじめるアプリ開発

  1. HOME
  2. 実践編
  3. Webアプリ開発
  4. Django REST framework
  5. Django REST frameworkによるWebサービス開発(はじめてのPOST)

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

本レッスンのゴール

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

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にアクセスすると
以下のような画面が表示されます。

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

 

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

 

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

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

 

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

 

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

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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください