【SwiftUI】Django-REST-Frameworkを利用するAPI接続【UserIDの取得の方法】

この記事では、SwiftUIと、Django Rest Framework、Django Rest Authを利用するプロジェクトで、user_idを取得する方法を解説しています。

 

各ユーザーごとにアカウントを作成するアプリや、WEBシステムでは、ユーザーごとに表示や、使用できる機能を選択する必要があるため、利用ユーザーのIDなど一意の情報を利用する方法がとられます。

 

今回は、Django側で作成されるIDを利用する方法を紹介します。

 

◆動作検証環境

・ローカル環境:mac Catalina
・XCode:12.1
・SwiftUI:2.0
・Django:3.1.2
・django-allauth:0.43.0
・DjangoRESTframework: 3.12.1
・django-rest-auth: 0.9.5
大まかな方法の手順は、以下のようになります。
  • ①Django側でID取得用のエンドポイントの作成
  • ②SwiftUI側でID取得用のコードの実装

 

スポンサードリンク

Django側でID取得用のエンドポイントの作成

 

まず、バックエンド側でIDを提供するためのエンドポイントの実装が必要です。

 

Django Rest Framework、Django Rest Authでの実装方法はこちらの記事を参考にしてください。

user_idを取得する方法【 Django Rest FrameworkとDjango Rest Authの場合】

 

SwiftUI側でID取得用のコードの実装

 

続いて、SwiftUI側でID取得用のコード実装を行います。

IDの取得の実装でも、通常のAPIのGET接続の方法と変わりません。

 

 

ポイント

3,4,5行目:

ID取得に必要な変数を定義します。

statusCode:Int?  API接続、データの情報が正しく行われた事を判断するために、ステータスコードを利用します。

id:Int? , userName:String?  このコードでは、idと同時にユーザーネームも取得する内容となっています。

 

 

35行目:

API接続で入手したJsonデータをデコードします。

入手元のデータに対応するModelを作成し、decodeの際に利用します([UserId])。

UserIdのStruct は以下のように作成しています。

 

ID取得後の利用方法

アプリ等を利用する際に、ユーザーが一度ログインをすると、その後利用するユーザーidはログアウトするまで変わりません。

そのため、その後のAPI接続の度に、idを取得する事は効率が悪いです。

ログイン完了後1度のみidの取得を行い、ログイン中のフラグのようにユーザーデフォルトなどで値として保持する方法が良いでしょう。

 


以上、SwiftUIと、Django Rest Framework、Django Rest Authを利用するプロジェクトで、user_idを取得する方法を解説しました。