first in your route, use this base url : /api/{version}
then create this file: decorator.py
import falcon
class UriVersion:
def __init__(self, version: list):
self.version = version
def __call__(self, req: falcon.Request, resp: falcon.Response, *args, **kwargs):
try:
version = args[1].get('version')
if version not in self.version:
raise NotImplementedVersionURI # raise your exception
except NotImplementedVersionURI:
raise falcon.HTTPNotImplemented(self._('The URI version is not valid!'))
and now create resource like this :
import falcon
from .decorator import UriVersion # import decorator
__version__ = ['v1']
@falcon.before(UriVersion(__version__))
class UserResource(BaseResource):
def on_put(self, req: falcon.Request, resp: falcon.Response, *args, **kwargs):
pass