問題タブ [chopper]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
api - Flutter Chopper 401 renew & retry インターセプター
Flutter アプリで Chopper を使用しています。API から 401 応答ステータス コード (未承認) を取得した場合、別のエンドポイントを呼び出してトークンを更新し、それを安全なストレージに保存する必要があります。これが完了したら、すぐにリクエストを再試行する必要があります (ユーザーがトークンの有効期限が切れたことに気付かないようにするため)。これは Chopper のみで実行可能ですか、それとも他のパッケージを使用する必要がありますか?
flutter - ChopperClient フラッターに複数のコンバーターを追加する
さまざまな応答セットに対して json-annotation を使用して、さまざまな .g.dart クラスを作成しています。現在、リクエストを作成し、レスポンスをモデル クラスにマッピングするために Chopper Client を使用しているときは、コンバーターを作成しています。ただし、チョッパー クライアントに割り当てることができるコンバータは 1 つだけです。私が達成しようとしているのは、get_it パッケージを使用してチョッパー クライアントを初期化することです。異なるリクエストを行う際に、異なるコンバーターをチョッパークライアントに割り当てるにはどうすればよいですか。 これは、クラスの初期化に get_it パッケージが使用される基本クラスです。
base.dart
この ChopperService クラスから Get リクエストを作成し、HomeModelConverter を使用して応答を HomeModelResponse にマッピングします。この HomeModelConverter は、上記のチョッパー クライアント オブジェクトに割り当てられます。
home_api_service.dart
これは、HomeModelResponse 固有のコンバーター クラスです。decodeJson 関数内では、HomeModelResponse にデコードすることを明示的に言及しています。
home_model_converter.dart
これは、受信応答が自動的にマップされる HomeModelResponse です。
home_model_response.dart
上記のコードは home_api_service に対して正常に機能しており、適切な応答が得られています。 ここで、AddApiService などの別のサービスを作成したいと考えています。これには別のコンバーターがあります。チョッパー クライアントでコンバーターを動的に変更する方法。現在、HomeModelConverter は初期化時にハードコーディングされて割り当てられています。すべてのコンバーターに対して複数の ChopperClient を作成したくありません。ここで立ち往生。または、汎用コンバーターを作成するオプション
このアプローチが問題ないかどうか、またはフラッターに従うためのより良いアプローチがあるかどうかを誰かが提案できる場合。
flutter - Flutter Chopper: 複数のサービスを持つクライアントを作成する方法は?
現時点では、次のコードがあります。
と
次に、次のように呼び出します。
しかし、複数のサービスを受け入れていることがわかります...
どうにかしてコード量を減らすことはできますか? (そうでない場合は、このようなクラスをさらに 5 つ行うことになります...)
可能であれば、どのように、どのように使用しますか?
編集:
それはこのように動作します:
サービスを作成します。例:
ファイル: test_api.dart
クライアントを作成します。
次に、次のようにサービスを使用できます。