1

API と対話するコードを作成しています。API を使用するには、残りのリクエストに使用するセッション キーを取得する必要があります。セッション キーはしばらくすると無効になるため、コードにも必要です。再認証の準備をします。

コード自体は関連性がなく、コードの流れをどのように設計するかについての質問であるため、API とは関係ありません。私はそれを行うための最良の方法を探しています。

ここにコード (javascript/node.js) はありませんが、基本的に疑似コードでどのように見えるかを次に示します。

function getResult {
  data = foobar
  return getData(data, callback)
}

function getData(data, callback) {
  *building query (including the session-key) and getting data via http*
  if error == noauth
    auth()
    // What should happen here, I need to rerun the query
  else
   callback(result)
}

function auth {
  data = foobar
  getData(data, callback(?))
  // it returns a session-key to use 
  //What should happen here?
}
4

1 に答える 1

0

私は次のようなことをします:

function GetAuth(auth_params)
{
    // get session key
    return session key;
}

function MyAPIWorker(auth_params)
{
    this._auth_params = auth_params;
    this._current_auth = null;
}

MyAPIWorker.prototype.do(action)
{
    if (this._current_auth == null)
    {
    this._current_auth = GetAuth();
    }
    var result = action(this._current_auth);
    if (result == no_auth_error)
    {
    this._current_auth = GetAuth();
    result = action(this._current_auth);
    }
    return result;
}

それを使用するには、次のようにします。

worker = new MyAPIWorker(/* auth params here */);
worker.do(function (sessionKey) { /* do something with session key */});
/** blah blah **/
worker.do(function (sessionKey) { /* do other something with session key */});

面倒な作業は職人が代行してくれます...

于 2012-07-21T02:07:18.993 に答える