/ #Django 

DjangoでハロワのAPIを作る

もくじ

直近で、Djangoのプロジェクトのベースを作成を作ったので、簡単なハロワAPIをDjangoで実装したいと思います😉

Djangoを使って見ようかな?とかDjangoに興味があるけど、使ったことが無い方向けです!

何がしたいの?

DjangoのチュートリアルをベースにハロワAPIを作ります。

ただそれだけ😅

前提

DBの用意や初期設定が面倒なので、私はdjango-my-template(v1.0.0)の上にコードを書いていきますが、とくにdjango-my-templateである必要はないです👍

最終成果物

リポジトリはこちら

https://github.com/sisi100/django-my-template/tree/post/hello_world

では 作っていきましょう👻

といってもほぼ上からチュートリアル叩くだけなんですけどね!

ハロワ用の新規アプリの作成

ハロワを動かすアプリのスケルトン(雛形)を、Djangoに作ってもらいます!😚

django-my-templateをクローンして、django-my-template/直下で下記のコマンドを叩きます。

python manage.py startapp hello_world_app

もしここでDjangoが無い!って怒られたら下記を叩いてください😅

$ docker-compose run --rm web python manage.py startapp hello_world_app

django-my-templateの直下にhello_world_appという名前のディレクトリができたはずです。

このディレクトリ内にある下記4個は、今回いらないので削除します。

  • migrations
  • admin.py
  • models.py
  • tests.py

Viewの作成

次にこのディレクトリのviews.pyを開いて、下記のように書き換えます。

from django.core.handlers.wsgi import WSGIRequest
from django.http.response import JsonResponse


def hello(request: WSGIRequest) -> JsonResponse:
    return JsonResponse({"message": "Hello world"})

APIっぽくJsonで返したいので、レスポンスが公式チュートリアルとは多少異なります👍

エンドポイントの登録

次にhello_world_appディレクトリ内にurls.pyというファイルを作ってください。

ファイルの中身はチュートリアルに沿って、こんな感じです。

from django.urls import path

from .views import hello

urlpatterns = [
    path("world", hello),
]

アプリの登録

最後にこのアプリをプロジェクトへ登録します。

django-my-template/config/urls.pyを下記に書き換えます😉

adminは今回使わないので削除しました👍

from django.urls import include, path

urlpatterns = [
    path("hello/", include("hello_world_app.urls")),
]

動作確認

念の為コンテナを再起動します。

$ docker-compose restart web

そして下記を叩きます。

$ curl http://localhost:8000/hello/world
> {"message": "Hello world"}

ブラウザでhttp://localhost:8000/hello/worldを直接開いても大丈夫です!

終わりに

今回はDjangoをデフォルトのまま使ってAPIを実装しました!

が、あまり今回の方法でAPIを実装するケースは無いんじゃないかな?と思います。

たぶんDjango REST frameworkを使うのが一般的だと思うので、今後それも触れたいです🤔

では、ありがとうございました!

Author

Sisii

インフラが好きなエンジニアぶってるなにか