У меня было аналогичное требование для моего приложения, где каждая конечная точка /<SOMEID>/rest/other
для данного SOMEID
должна быть связана с другой функцией.Одним из способов достижения этого является ведение поискового словаря, в котором значения являются функцией, которая обрабатывает определенный SOMEID
.Например, взгляните на этот фрагмент:
func_look_up_dict = {...}
@app.route('<SOMEID>/rest/other', methods=['GET'])
def multiple_func_router_endpoint(SOMEID):
if SOMEID in func_look_up_dict.keys():
return jsonify({'result' = func_look_up_dict[SOMEID]()}), 200
else:
return jsonify({'result'='unknown', 'reason'='invalid id in url'}), 404
, поэтому для этого вам не нужно «динамически» добавлять правила URL, а вместо этого использовать правило URL с параметром и обрабатывать различные случаи сединственная функция.Еще одна вещь, которую стоит рассмотреть, - это подумать над вариантом использования такой конечной точки URL.Если <username>
- это параметр, который необходимо передать, почему бы не использовать правило URL, например /rest/product/<username>
, или передать его в качестве аргумента в запросе GET?Надеюсь, это поможет.