- make blueprint add_route method support view instance
- update documentation that doesn't specify url_prefix parameter
This commit is contained in:
parent
1866e4ef44
commit
d57d90fe6b
|
@ -131,8 +131,8 @@ can be used to implement our API versioning scheme.
|
||||||
from sanic.response import text
|
from sanic.response import text
|
||||||
from sanic import Blueprint
|
from sanic import Blueprint
|
||||||
|
|
||||||
blueprint_v1 = Blueprint('v1')
|
blueprint_v1 = Blueprint('v1', url_prefix='/v1')
|
||||||
blueprint_v2 = Blueprint('v2')
|
blueprint_v2 = Blueprint('v2', url_prefix='/v2')
|
||||||
|
|
||||||
@blueprint_v1.route('/')
|
@blueprint_v1.route('/')
|
||||||
async def api_v1_root(request):
|
async def api_v1_root(request):
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
from collections import defaultdict, namedtuple
|
from collections import defaultdict, namedtuple
|
||||||
|
|
||||||
|
from sanic.constants import HTTP_METHODS
|
||||||
|
|
||||||
FutureRoute = namedtuple('Route', ['handler', 'uri', 'methods', 'host'])
|
FutureRoute = namedtuple('Route', ['handler', 'uri', 'methods', 'host'])
|
||||||
FutureListener = namedtuple('Listener', ['handler', 'uri', 'methods', 'host'])
|
FutureListener = namedtuple('Listener', ['handler', 'uri', 'methods', 'host'])
|
||||||
|
@ -82,15 +83,18 @@ class Blueprint:
|
||||||
return handler
|
return handler
|
||||||
return decorator
|
return decorator
|
||||||
|
|
||||||
def add_route(self, handler, uri, methods=None, host=None):
|
def add_route(self, handler, uri, methods=frozenset({'GET'}), host=None):
|
||||||
"""
|
"""
|
||||||
Creates a blueprint route from a function.
|
Creates a blueprint route from a function.
|
||||||
:param handler: Function to handle uri request.
|
:param handler: function or class instance to handle uri request.
|
||||||
:param uri: Endpoint at which the route will be accessible.
|
:param uri: Endpoint at which the route will be accessible.
|
||||||
:param methods: List of acceptable HTTP methods.
|
:param methods: List of acceptable HTTP methods.
|
||||||
|
:return: function or class instance
|
||||||
"""
|
"""
|
||||||
route = FutureRoute(handler, uri, methods, host)
|
# Handle HTTPMethodView differently
|
||||||
self.routes.append(route)
|
if hasattr(handler, 'view_class'):
|
||||||
|
methods = frozenset(HTTP_METHODS)
|
||||||
|
self.route(uri=uri, methods=methods, host=host)(handler)
|
||||||
return handler
|
return handler
|
||||||
|
|
||||||
def listener(self, event):
|
def listener(self, event):
|
||||||
|
|
Loading…
Reference in New Issue
Block a user