如何使用Flask-Restful访问具有多个端点的资源?

时间:2016-04-20 06:19:48

标签: python rest flask flask-restful

这是一个简单的Flask-Restful资源:

class ListStuff(Resource):
    def get(self):
       stuff = SomeFunctionToFetchStuff()
       if re.match('/api/', request.path):
           return {'stuff': stuff}
       return make_response("{}".format(stuff), 200, {'Content-Type': 'text/html'})

api.add_resource(ListStuff, '/list', '/api/list', endpoint='list')

我的想法是允许用户同时拨打/list/api/list。如果他们使用第一个URL,他们将返回数据的HTML表示。如果他们使用第二个URL,他们将获得JSON表示。

我的麻烦是当我想在程序的其他地方访问此端点的URL时。我无法使用url_for('list'),因为无论用户是访问/list还是http://host.example.com/list

,都会始终返回http://host.example.com/api/list

那么如何构建/api/list的网址?

1 个答案:

答案 0 :(得分:3)

看起来Hassan走在正确的轨道上 - 我可以为同一个类添加一个新资源,但给它一个不同的端点。

myFunc(goodArg, BadArg) {
    ...
}