我使用flask-restful定义了一些名为WorkerAPI
的资源,计划是处理来自/api/workers/new
的POST请求和来自/api/workers/
的GET请求。使用以下代码时
api.add_resource(WorkerAPI, '/api/workers/new')
api.add_resource(WorkerAPI, '/api/workers/')
我收到错误:
AssertionError:视图函数映射正在覆盖现有的端点函数:workerapi
然后我尝试使用以下,这似乎有效,虽然我不知道它为什么有效。
api.add_resource(WorkerAPI, '/api/workers/new', endpoint='/workers/new')
api.add_resource(WorkerAPI, '/api/workers/', endpoint='/workers/')
虽然对我来说看起来像是多余的信息。只要将两个endpoint
定义为不同的字符串,该网站似乎就可以正常工作。 endpoint
在这里意味着什么?
答案 0 :(得分:3)
问题是add_resource
函数使用给定的endpoint
向框架注册路由。如果没有给出endpoint
,那么Flask-RESTful会从类名中为您生成一个。
您的案例为WorkerAPI
,端点对于这两种方法将为workerapi
,最好使endpoint
显式,并避免注册冲突的端点名称。
对于什么样的终端,您可以参考this answer了解更多详情。