API接続(oauth2)を管理するパッケージを作成しています。
パッケージはAPIに接続し、いくつかのチケット値を取得して、それらをグローバル関数ハンドルに格納します。
handle <- function(login-details) { api-call }
APIを介してデータを取得する必要がある場合は常に、ハンドルを介して取得します。
getData <- function(handle) { foo }
ただし、ハンドルに格納されているチケット値は期限切れになるため、APIを介していくつかのrefresh-variablesを介してハンドルを更新する必要があります。
問題は、どうすればこれを行うことができるかということです。getData-function内からハンドルを更新できません。いくつかのハック(グローバル環境でのassign()関数)を使用しない限り、そうではありません。
これにはいくつかのベストプラクティスが必要ですか?ハンドルが新しいかどうかをテストしてからハンドルを返し、そうでない場合はハンドルを更新する関数を作成する必要がありますか?好き:
handle <- prepare(handle)
getData <- function(handle) { foo }
これはばかげているようで、エラーの新しい可能性を追加します。
どんな助けでも大歓迎です!