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/ が設定されている
  • JWTAuthenticationsettings.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へのアクセス、トークンの更新、エラーの検証など、認証まわりの動作確認を視覚的に、かつ迅速に行うことができます。