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作成の基本的な流れを追うことが出来ました。