def redirect_old_url(old_rule, endpoint, route_kw_func=None, append=None): def redirector(**route_kw): if route_kw_func: return redirect(url_for(endpoint, **route_kw_func(**route_kw))) return redirect(url_for(endpoint, **request.args), 301) app.add_url_rule(old_rule, endpoint + '_old' + (append if append else ''), redirector)
def decorator(func): @wraps(func) def redirector(**route_kw): return redirect(url_for(func.__name__, **route_kw), 301) app.add_url_rule(old_rule, _get_new_url_rule_name(func.__name__), redirector) return func
def base_api_func(function): @wraps(function) def decorator(*args, **kwargs): version = int(kwargs['version']) if version < 1 or version > 1: abort(404) del kwargs['version'] return function(*args, **kwargs) exempt_funcs.add(decorator) name = function.__name__ app.add_url_rule('/api/v<int:version>/%s' % name, name, decorator, methods=['GET', 'POST']) return decorator