有没有办法在 Python Flask-RESTFUL 中配置路由层次结构?

Is there a way to configure routes hierarchy in Python Flask-RESTFUL?

假设我有几条路线:

api.add_resource(Customers, "/Customers")
api.add_resource(Customer, "/Customer/<int:customerId>")

现在,客户可以拥有很多相关联的东西。比如说,订单:

api.add_resource(Customers, "/Customers")
api.add_resource(Customer, "/Customer/<int:customerId>")
api.add_resource(Orders, "/Customer/<int:customerId>/Orders")
api.add_resource(Order, "/Customer/<int:customerId>/Order/<int:orderId>")

有什么方法可以避免重复“/Customer/< int:customerId>”部分吗?看起来多余而且容易出现错别字。

假设我们添加了购物车、点赞、之前查看过的内容、心愿单、支持票等...我们可以很容易地一遍又一遍地重复这些信息。

更不用说订单可能拥有的任何资源了。现在我们正在重复客户和订单路线信息。

有没有办法建立某种层次结构说:

api.add_resourceToPrevious([oldRoute], [newRouteController], [newRouteToAppendToOld])

flask 似乎没有内置的方法来做到这一点。但是,您仍然可以使用 Python 功能:

customer_path = '/Customer/<int:customerID>'
api.add_resource(Customer, customer_path)
api.add_resource(Orders, customer_path + '/Orders')
api.add_resource(Order, customer_path + '/Order/<int:orderId>')