メインコンテンツにスキップ
すべてのコレクションエネがえるAPIサービスエネがえるAPIサービスを実装される方へ
API実行時のユーザー管理(UIDの扱い)およびリトライ処理について
API実行時のユーザー管理(UIDの扱い)およびリトライ処理について

APIの認証とユーザー管理を適切に行うため、以下のポイントを押さえましょう。

桑田 正英 avatar
対応者:桑田 正英
3週間以上前に更新

🔐 API実行時のユーザー管理(UIDの扱い)

APIの認証とユーザー管理を適切に行うため、以下のポイントを押さえましょう。


💡 UIDの基本仕様

  • Login API を実行後に発行される uid は一時的なセッションID です。

  • 同じユーザーで再ログインすると、以前の uid は失効します。

  • システムの更新やメンテナンス時にも uid が無効化されることがあります。

  • 失効した uid では API 認証が通らないため、適切なリトライ処理が必要です。


📌 実装ガイドライン

API を安定的に利用するため、以下のポイントを実装してください。

uid の管理

セッション管理を行う

  • uid は一時的な識別子のため、サーバー側で適切に保存・管理してください。

  • uid の有効期限を考慮し、適宜再ログインする処理を実装する。

APIコールはサーバー経由で行うことを推奨

  • クライアント(Web / アプリ)から直接APIを実行すると uid の失効管理が難しくなるため、サーバー側でAPIコールを管理するのがベストプラクティス。

同じユーザーでログインする際は、新しい uid を必ず使用する

  • 既存の uid を使い続けると認証エラーになる可能性があるため、都度最新の uid を利用する。


uid 失効時のリトライ処理

🚨 APIの認証エラー(401 Unauthorized)時の対応 (あくまでも例です)

  • uid が失効した場合、APIリクエストは401エラーを返します。

  • 401エラーを検出した場合は、即座に再ログイン処理を行い、新しい uid を取得する。

  • APIリトライの実装は以下のように行ってください。

import requests import time API_BASE_URL = "https://api.enegaeru.com" LOGIN_ENDPOINT = "/login" DATA_ENDPOINT = "/getData" USER_CREDENTIALS = { "username": "your_username", "password": "your_password" } # ❶ 初回ログインで uid を取得 def login(): response = requests.post(f"{API_BASE_URL}{LOGIN_ENDPOINT}", json=USER_CREDENTIALS) if response.status_code == 200: return response.json()["uid"] else: raise Exception("Login failed") # ❷ APIコール(リトライ機能付き) def call_api_with_retry(): uid = login() max_retries = 3 # 最大3回リトライ retry_delay = 2 # リトライ間隔(秒) for attempt in range(max_retries): headers = {"Authorization": f"Bearer {uid}"} response = requests.get(f"{API_BASE_URL}{DATA_ENDPOINT}", headers=headers) if response.status_code == 200: return response.json() # 正常なレスポンス elif response.status_code == 401: # 認証エラー(uid失効) print(f"Attempt {attempt + 1}: UID expired, re-login...") uid = login() # 再ログイン time.sleep(retry_delay) else: print(f"Unexpected error: {response.status_code}") break raise Exception("API call failed after multiple retries") # API実行 data = call_api_with_retry() print(data)

📝 まとめ(FAQ形式)

質問

回答

uid はいつ失効する?

- 同じユーザーで再ログインした時 - システムの更新やメンテナンス時

失効した uid を使うとどうなる?

APIの認証が通らず 401 Unauthorized エラーが発生します。

APIコール時に uid 失効を防ぐ方法は?

- サーバー経由でAPIコールを管理する - 常に最新の uid を利用する - リトライ処理を実装する

認証エラー(401)が発生したら?

- 即座に再ログインし、新しい uid を取得 - 再取得後にAPIリクエストをリトライ

リトライ処理の推奨設定は?

- 最大 3回 のリトライ - 1回目失敗後 2秒間隔 で再試行


📩 お問い合わせ

技術的なサポートや実装に関するご質問は info@enegaeru.com までお気軽にご相談ください!

こちらの回答で解決しましたか?