def __call__(self, req, params):
<EOL>action = params.pop('<STR_LIT:action>')<EOL>descriptor = self._get_action(action)<EOL>if not descriptor:<EOL><INDENT>raise webob.exc.HTTPNotFound()<EOL><DEDENT>body = descriptor.deserialize_request(req)<EOL>if body is not None:<EOL><INDENT>params['<STR_LIT:body>'] = body<EOL><DEDENT>resp, post_list = descriptor.pre_process(req, params)<EOL>if not resp:<EOL><INDENT>resp = descriptor(req, params)<EOL><DEDENT>resp = descriptor.post_process(post_list, req, resp, params)<EOL>return resp._serialize()<EOL>
Dispatch a request with the given parameters (developed from
the path specified to the @action() decorator) to an
appropriate action.  Deserializes any request body, processes
extensions, calls the appropriate action method, and
serializes the response, which is then returned.