【问题标题】:Two urls with difference of one optional parameter to map to same resource in flask restful两个 url 不同的一个可选参数映射到烧瓶中的相同资源 restful
【发布时间】:2020-03-08 00:56:31
【问题描述】:

我有两个端点:

  • /api/v1/users
  • /api/v1/<resource>/users

我有一个像这样处理后者的类

class ListUsers(Resource):
    def post(self,resource):
         // get the list of users under that resource

api.addResource(ListUsers,'/api/v1/<resource>/users')

如果没有指定resource,我想列出所有资源中的用户。是否可以将两个 url 映射到同一个 class ListUsers 而不是为第一个 url 编写另一个类?

【问题讨论】:

    标签: python flask-restful


    【解决方案1】:

    根据flask-restful的文档和源代码,你可以传递多个url来匹配addResource。

    喜欢:

    class ListUsers(Resource):
        def post(self, resource=None):
            // get the list of users under that resource
    
    api.addResource(ListUsers, '/api/v1/<resource>/users', '/api/v1/users')
    

    另一个例子:https://stackoverflow.com/a/56250131/1788218

    有用的文档:https://buildmedia.readthedocs.org/media/pdf/flask-restful/latest/flask-restful.pdf

    【讨论】:

    • 不错的简单解决方案 :) !
    • 上周我遇到了同样的问题,但在我的情况下,网址的前缀不同,它们完全不同。发生这种情况是因为我必须与旧版本一起实现新版本的 api。最后我通过复制和粘贴资源并注册路由来解决。
    猜你喜欢
    • 1970-01-01
    • 2011-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 2014-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多