問題タブ [siesta-swift]

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.

0 投票する
3 に答える
367 参照

ios - シエスタ JSON レスポンス

次のように JSON 応答を返す API をセットアップしました。

これを読みましたがkey1どうすれば適切にアクセスできるのかまだわかりません。を介してトランスフォーマーのデータをデコードしようとしました[String : Any]が、あいまいな型のエラーがスローされます:「式の型があいまいです」。

では、以下のコードで Siesta を使用して応答を読み取るにはどうすればよいでしょうか?

0 投票する
1 に答える
109 参照

swift - Swift Siesta - リクエスト チェーンに非同期コードを含める方法は?

Siesta デコレータを使用して、ログインしたユーザーが 401 を取得したときに authToken が自動的に更新されるフローを有効にしようとしています。認証には Firebase を使用します。

Siesta のドキュメントには、Siesta リクエストをチェーンする方法に関する簡単な例がありますが、ここで非同期の Firebase getIDTokenForcingRefresh:completion:を機能させる方法を見つけることができませんでした。問題は、Siesta が常に Request またはRequestChainActionが返されることを期待していることですが、これは Firebase 認証トークン更新 API では不可能です。

リクエスト チェーンは主に Siesta のみのユース ケースで行われることを理解しています。しかし、FirebaseAuth のような非同期のサードパーティ API を使用する方法はありますか?

コードは次のとおりです。

編集:

Adrianの提案された回答に基づいて、以下の解決策を試しました。それでも期待どおりに動作しません:

  • request() .postを使用してリクエストを送信します
  • 解決策では、コールバックで「リクエストがキャンセルされました」というエラーが発生します
  • createUserのコールバックが呼び出された後、元のリクエストが更新された jwt トークンとともに送信されます
  • createUserのコールバックが応答のために呼び出されないため、正しい jwt トークンを使用したこの新しい要求は失われます。その場合、 onSuccessに到達することはありません。

元のリクエストが更新された jwt トークンで送信された後にのみ createUser のコールバックが呼び出されるようにするにはどうすればよいですか? これが私の機能しない解決策です-何か提案があれば幸いです:

API クラス:

RequestDelegate: