asyncio REST API 动态路由

asyncio REST API dynamic routing

我正在尝试使用 aiohttp 库为 python 3 asyncio 程序创建 REST API 应用程序。

在这个程序中,我正在管理由更多对象组成的对象, 例如管理包含许多不同产品的客户购物车。

将新对象(产品)添加到容器(购物车)时, 我希望它是一个具有独特功能的子应用程序,例如,乳制品会有保质期,饮料会有酒精含量。

问题是不同产品的不同路径需要解析到不同的子应用,例如: 如果我们的路径格式是: /{cart_id}/{product_name} 然后:

/1/milk --> Needs to be resolved to the Dairy sub-application, while

/1/whiskey --> Needs to be resolved to the beverages sub-application.

我还希望子应用程序能够访问 {cart_id} 值。

总共只有大约 3 个这样的子应用程序类型,因此不需要非常复杂的解决方案。

我目前正计划覆盖 aiohttp.Router class 以禁用它冻结以允许动态添加路由, 但这太糟糕了。

如果有人遇到过类似的问题或者可以指出更好的解决方案,那将非常有帮助。

你说得对,覆盖路由器以禁用冻结是个坏主意。

最好做你自己的自定义路由。例如。接收所有请求然后决定哪个其他视图应处理每个请求的视图。

查看文档中的 Custom Routing Criteria