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

时间:2016-11-22 20:03:57

标签: python routes nested-resources flask-restful nested-routes

所以我想说我有几条路线:

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 /&lt; int:customerId&gt;”部分?这似乎是多余的,容易出现错别字。

假设我们投入,购物车,喜欢,以前查看,愿望清单,支持门票等...我们可以轻松地一遍又一遍地重复这些信息。

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

有没有办法设置某种层次结构来说:

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

1 个答案:

答案 0 :(得分:1)

烧瓶似乎没有内置的方法来做到这一点。但是,您仍然可以使用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>')