多级路由管理
什么是多级路由管理?
在路由管理中,按一定属性分类聚合路由的方法,可以叫多级路由管理。
或者也可以叫做路由组。
Pywss 通过 app.party
提供了路由组的能力,用于支持多级路由管理。
下面通过一个案例来展示 多级路由管理。
案例
import pywss
def register_route(app: pywss.App):
app.get("/api/v1/docs")
app.get("/api/v2/docs")
app.get("/api/v3/docs")
app.get("/api/v1/author")
app.get("/api/v2/author")
app.get("/api/v3/author")
app.get("/api/v1/github")
app.get("/api/v2/github")
app.get("/api/v3/github")
app.get("/api/v1/history")
app.get("/api/v2/history")
app.get("/api/v3/history")
app = pywss.App()
register_route(app)
app.run()
在上面案例中我们可以看到服务一共注册了 12 个路由。
其中,包含了三个版本的接口:
/api/v1
/api/v2
/api/v3
并且这三个版本的接口都提供了四种能力:
/docs
/author
/github
/history
这也是非常常见的多版本接口设计方案。由于只注册了 12 个路由,整体来看还是比较清晰的。
下面,我们通过 app.party
来拆分多级路由。
- main.py
- v1.py
- v2.py
- v3.py
import pywss
from v1 import register as register_v1
from v2 import register as register_v2
from v3 import register as register_v3
app = pywss.App()
v1 = app.party("/api/v1")
v2 = app.party("/api/v2")
v2 = app.party("/api/v3")
register_v1(v1)
register_v2(v2)
register_v3(v3)
app.run()
import pywss
"""
V1 代码
"""
def register(app: pywss.App):
app.get("/docs", v1Handler)
app.get("/author", v1Handler)
app.get("/github", v1Handler)
app.get("/history", v1Handler)
import pywss
"""
V2 代码
"""
def register(app: pywss.App):
app.get("/docs", v2Handler)
app.get("/author", v2Handler)
app.get("/github", v2Handler)
app.get("/history", v2Handler)
import pywss
"""
V3 代码
"""
def register(app: pywss.App):
app.get("/docs", v3Handler)
app.get("/author", v3Handler)
app.get("/github", v3Handler)
app.get("/history", v3Handler)
可以看到,经过我们这一套拆下来,明显没以前直观了😥
但是有经验的程序员应该已经懂了😤