Process the request after routing.

        Deserializer selection needs a resource to determine which
        deserializers are allowed. If a deserializer is required then
        it will be initialized & added to the request object for
        further processing.

def process_resource(self, req, resp, resource):
        """ Process the request after routing.

        Deserializer selection needs a resource to determine which
        deserializers are allowed. If a deserializer is required then
        it will be initialized & added to the request object for
        further processing.
        """

        if req.content_required and resource:
            allowed = resource.deserializer_mimetypes

            if req.content_length in (None, 0):
                abort(EmptyRequestBody)
            elif req.content_type not in allowed:
                abort(ContentTypeUnsupported(allowed))
            else:
                deserializer = self._get_deserializer(req.content_type)
                req.deserializer = deserializer(req, resp)