Django REST framework API実装:動作確認

Django REST framework(DRF)でdjangorestframework-simplejwtを使ったJWT認証を導入した後、クライアント側からの動作確認を行う際に便利なのが「POSTMAN」です。APIの動作確認やエラー検証を直感的に行えるため、開発中のテストやデバッグに役立ちます。
本記事では、Simple JWTを使った認証エンドポイントを、POSTMANを使って順にテストする方法を紹介します。
目次
前提条件
この記事では、以下の環境が整っていることを前提とします。
- Django REST framework および djangorestframework-simplejwt が導入されている
- 認証エンドポイント /api/token/ および /api/token/refresh/ が設定されている
- JWTAuthentication が settings.py に設定されている
- ユーザーがすでに作成されている(例:username=testuser, password=testpass123
ユーザーを作成していない場合はテスト用のユーザーを以下のように作成しておきましょう。
以下コマンドを実行
python manage.py createsuperuser |
ユーザー名を入力してエンター。
Username:test |
続いてEメールアドレスを入力。入力せずにエンターでもOK。
Email address: test@example.com |
パスワードを2回入力したら作成完了です。
Password: **********Password (again): *********Superuser created successfully. |
パスワードが簡単すぎると警告された場合
このパスワードは短すぎます。最低 8 文字以上必要です。このパスワードは一般的すぎます。このパスワードは数字しか使われていません。 |
yを入力してEnter
Bypass password validation and create user anyway? [y/N]: y |
アクセストークンとリフレッシュトークンの取得
エンドポイント
POST http://localhost:8000/api/token/ |
ボディ(raw → JSONを選択)
実行結果
このように、ログインに成功すると2つのトークン(accessとrefresh)が返ってきます。
保護されたAPIへのアクセス
認証が必要なAPIエンドポイントにアクセスするには、先ほど取得したアクセストークンを使用します。
エンドポイント
GET http://localhost:8000/api/posts/ |
アクセストークンが有効であれば、保護されたAPIに正常にアクセスでき、データが返されます。
まだ、データを登録していないため、空のデータが返ってきます。
トークンのリフレッシュ
アクセストークンには有効期限があります。期限が切れた場合は、リフレッシュトークンを使って新しいアクセストークンを取得できます。
エンドポイント
POST http://localhost:8000/api/token/refresh/ |
実行結果
この新しいアクセストークンを使って、再びAPIにアクセスできます。
まとめ
djangorestframework-simplejwt を用いたJWT認証は、SPA(シングルページアプリケーション)と非常に相性の良い認証方式です。POSTMANを使えば、トークンの発行、認証付きAPIへのアクセス、トークンの更新、エラーの検証など、認証まわりの動作確認を視覚的に、かつ迅速に行うことができます。