Django

Django|Web APIを作成する その1

DjangoでAPIを作成します

事前準備

次の項目はインストールされている前提での記事となります。

・djangoをインストール済みのpython環境がある

・django-admin startproject xxxx で初期セットアップが完了している(manage.pyなどが生成されている)

アプリケーションを作成

以下をプロジェクト直下(manage.pyがある階層)で実行します。

python manage.py startapp app

新たにappフォルダが生成されます。

setting.pyにrestframework、appを登録

まずは作成したappとrestframeworkをsetting.pyに登録します。

これでAPIを作成する準備が整いました。

モデルを定義

続いてモデルの定義を行います。

djangoではmodels.pyにモデル定義を行った後、マイグレ作業を行うことでDBへの反映出来ます。

基本的にはshowmigrationsで適用したマイグレファイルを確認し、新しくモデルを追加したらmakemigrationsでマイグレファイルを作成します。

migrateでマイグレファイルをDBへ適用することでモデル定義とDBの対応します。

実際にmodels.pyを作成後にマイグレーション作業を行います。

まずはマイグレーションファイルの確認です。

以下をターミナルで実行します。この段階では未だ、新規作成したモデルのマイグレファイルは作成されていません。

python manage.py showmigrations

以下のようなマイグレーションが未実施の状態を確認できると思います。

auth
[ ] 0001_initial
[ ] 0002_alter_permission_name_max_length
[ ] 0003_alter_user_email_max_length

続いて、今回作成したモデルのマイグレーションファイルを作成します。

python manage.py makemigrations

これでマイグレーションファイルが作成されました。

最後にマイグレーションを実行します。

Python mange.py migrate

以上でモデル定義の作業は完了です。

APIを定義

django restframeworkを使うことでAPIを簡単に作成できます。

今回はviews.pyとsrializers.pyに基本的な処理のみ記述しているので、シンプルです。

複雑な処理は後ほど追加していく予定です!

urlsを定義

API部分が作成出来たら、最後はClient側やAPIを叩くためのURLを定義します。

動作確認

いよいよ動作確認をしてみます。開発サーバーを起動してみましょう!

python manage.py runserver

http://127.0.0.1:8000/todo/ にアクセスするとDjango Rest frameworkページが確認できかと思います。

上記URLはデータ一覧を取得するGETメソッドですが、まだデータが一つも作成されていないので[ ]のリストが表示されます。

次に、データを作成してみます。

http://127.0.0.1:8000/todo/create/ にアクセスするとPOSTメソッドが利用できます。

contentの中に適当な{"title":"test sample"}を入力し、postしてみます。

再度、http://127.0.0.1:8000/todo/ にアクセスしてみると先ほど登録したデータが返ってくるはずです。

お疲れ様でした。API作成の基本的な流れを追うことが出来ました。

ソースコード

  • この記事を書いた人

kazuki.m

エンジニア

開発言語:Python、Typescript

最近の関心:Vue、Typescript、Rust

-Django