'Extract necessary pieces of the request.
:param request: Request object
:returns: tuple of expected controller action name, dictionary of
keyword arguments to pass to the controller, the expected
content type of the response'

def deserialize(self, request):

    action_args = self.get_action_args(request.environ)
    action = action_args.pop('action', None)
    action_args.update(self.deserialize_headers(request, action))
    action_args.update(self.deserialize_body(request, action))
    accept = self.get_expected_content_type(request)
    return (action, action_args, accept)
