I am writing some node based services that run all day, pull data of a 
queue, perform some processing steps, then does some CRUD operations to a 
REST service/API with an authenticated session.  The authentication is 
standard POST user/pass params to <site root>/api/auth/login, session is 
created and token returned.
 
After trying out a few modules I have started with request (
https://github.com/mikeal/request) and written a module that creates a 
little API wrapper around it.
 
The pattern I would like to do is each API call will check the response, if 
there is an "unauthorized" error, it will attempt X times to create a new 
session, and re-call the API call.  There is design issue around not having 
a handle on the original callback and losign its context should a re-auth 
be necessary.
 
The processor would make a call like this:
 
var requestID = apiClient.testPing(function(err,respObj,body){
        console.log("inside of processor api callback...");
});
 
Then inside the apiClient, the testPing call would be:
 
 
    this.testPing = function(callback) {
        var opts  = {
            "uri":_this._host+'/'+_this._apiVersion+'/test/ping'
        };
        var reqId = _this._uuid.v4();
        _this._reqs[reqId] = {
            "id":reqId,
            "callback":callback,          //this is the callback passed to 
the API client call from the queue processor call
            "func":function(err,resp,body) {
                  console.log("inside api response callback, if auth error, 
call reAuth, on successful re-authentication re-call testPing");
            }
        };
        _this._request.get(opts,_this._reqs[reqId].func);       //use the 
node-request module object to carry out the REST call
 
        return reqId;           //return the request ID
    }
 
I am trying the following pattern where I generate a "request object", with 
an assigned UUID as its key and use that to maintain state.  Issue is that 
I have no way to know which "request ID" I am in since the node-request 
module, and others I have tried, fire the callbacks under the context of 
its request.
 
After looking as many of the REST Client modules most handle basic 
HTTPAuth, but no hooks/tools for standard forms of authing/auto-re-auth.  
The restler module seemed like it might be a fit with its .on callbacks and 
retries built in, but still doesn't quite fit.
 
Is there any node pattern(s) people have used that would solve this 
problem?  Or maybe a module out there my searches haven't revealed yet, so 
far looked through (request,restify,restler,node-rest-client)

-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to