この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:1
ページ更新者:guest
更新日時:2020-01-28 00:13:52

タイトル: APIの作成
SEOタイトル: 【django】APIの作成

前提

・djangoインストール済み。

・本稿ではWindows OSを例にしますが適宜読み替えて下さい。

・本稿では出来るだけAPIに関する部分のみを記述する。他に関しては別記事を参照すること。

・プロジェクト名を「api_project」とする

・適当なアプリを作成しておく。今回は「api」アプリとする。

 

必要ライブラリ

pip install djangorestframework

pip install django-filter

 

設定ファイル

api_project/settings.py

INSTALLED_APPS = (

    'api',

    'rest_framework',

)

 

モデルの作成

api/models.py

from django.db import models


class Report(models.Model):

    id = models.CharField(max_length=200, primary_key=True)

    user_id = models.CharField(max_length=200)

※DB設定はAPI固有のものではないので省きます。

※面倒なのでカラムはidのみとします。

 

シリアライザーの作成

api/models.py

from rest_framework import serializers

from .models import User, Entry


class ReportSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ('id', 'user_id')

※DB設定はAPI固有のものではないので省きます。

 

URLの設定

api_project/url.py

from django.contrib import admin

from django.urls import include, path

 

urlpatterns = [

    path('admin/', admin.site.urls),

    path('api/', include('api.urls')),

]
 

 

api/url.py

from rest_framework import routers

from .views import TestView

 

router = routers.DefaultRouter()

router.register(r'test', TestView)

上記の記述で「GET /api/test/」にアクセスできるようになる。

 

ビューの作成

api/url.py

import django_filters
from rest_framework import viewsets, filters, routers

from .models import Report
from .serializer import ReportSerializer

class TestView(viewsets.ModelViewSet):
    queryset = Report.objects.all()
    serializer_class = ReportSerializer

router = routers.DefaultRouter()
router.register(r'test', TestView)

 

動作の確認

開発サーバーを起動して「http://127.0.0.1:8000/api/test/」にアクセスする。

以下のようにレスポンスが表示されれば成功。