|
|
|
@ -56,19 +56,23 @@ class VersionNegotiationFilter(wsgi.Middleware):
|
|
|
|
|
|
|
|
|
|
match = self._match_version_string(req.path_info_peek(), req)
|
|
|
|
|
if match:
|
|
|
|
|
if (req.environ['api.major_version'] == 1 and
|
|
|
|
|
req.environ['api.minor_version'] == 0):
|
|
|
|
|
logger.debug(_("Matched versioned URI. Version: %d.%d"),
|
|
|
|
|
req.environ['api.major_version'],
|
|
|
|
|
req.environ['api.minor_version'])
|
|
|
|
|
major_version = req.environ['api.major_version']
|
|
|
|
|
minor_version = req.environ['api.minor_version']
|
|
|
|
|
|
|
|
|
|
if (major_version == 1 and minor_version == 0):
|
|
|
|
|
logger.debug(_("Matched versioned URI. "
|
|
|
|
|
"Version: %(major_version)d.%(minor_version)d")
|
|
|
|
|
% {'major_version': major_version,
|
|
|
|
|
'minor_version': minor_version})
|
|
|
|
|
# Strip the version from the path
|
|
|
|
|
req.path_info_pop()
|
|
|
|
|
return None
|
|
|
|
|
else:
|
|
|
|
|
logger.debug(_("Unknown version in versioned URI: %d.%d. "
|
|
|
|
|
"Returning version choices."),
|
|
|
|
|
req.environ['api.major_version'],
|
|
|
|
|
req.environ['api.minor_version'])
|
|
|
|
|
logger.debug(_("Unknown version in versioned URI: "
|
|
|
|
|
"%(major_version)d.%(minor_version)d. "
|
|
|
|
|
"Returning version choices.")
|
|
|
|
|
% {'major_version': major_version,
|
|
|
|
|
'minor_version': minor_version})
|
|
|
|
|
return self.versions_app
|
|
|
|
|
|
|
|
|
|
accept = str(req.accept)
|
|
|
|
@ -77,18 +81,20 @@ class VersionNegotiationFilter(wsgi.Middleware):
|
|
|
|
|
accept_version = accept[token_loc:]
|
|
|
|
|
match = self._match_version_string(accept_version, req)
|
|
|
|
|
if match:
|
|
|
|
|
if (req.environ['api.major_version'] == 1 and
|
|
|
|
|
req.environ['api.minor_version'] == 0):
|
|
|
|
|
logger.debug(_("Matched versioned media type. "
|
|
|
|
|
"Version: %d.%d"),
|
|
|
|
|
req.environ['api.major_version'],
|
|
|
|
|
req.environ['api.minor_version'])
|
|
|
|
|
major_version = req.environ['api.major_version']
|
|
|
|
|
minor_version = req.environ['api.minor_version']
|
|
|
|
|
if (major_version == 1 and minor_version == 0):
|
|
|
|
|
logger.debug(_("Matched versioned media type. Version: "
|
|
|
|
|
"%(major_version)d.%(minor_version)d")
|
|
|
|
|
% {'major_version': major_version,
|
|
|
|
|
'minor_version': minor_version})
|
|
|
|
|
return None
|
|
|
|
|
else:
|
|
|
|
|
logger.debug(_("Unknown version in accept header: %d.%d..."
|
|
|
|
|
"returning version choices."),
|
|
|
|
|
req.environ['api.major_version'],
|
|
|
|
|
req.environ['api.minor_version'])
|
|
|
|
|
logger.debug(_("Unknown version in accept header: "
|
|
|
|
|
"%(major_version)d.%(minor_version)d..."
|
|
|
|
|
"returning version choices.")
|
|
|
|
|
% {'major_version': major_version,
|
|
|
|
|
'minor_version': minor_version})
|
|
|
|
|
return self.versions_app
|
|
|
|
|
else:
|
|
|
|
|
if req.accept not in ('*/*', ''):
|
|
|
|
|