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
を使うのが一般的だと思うので、今後それも触れたいです🤔
では、ありがとうございました!