当前位置:   article > 正文

Fastapi接口路由【模块化、去耦合】_fastapi 路由

fastapi 路由


一、前言

Fastapi 中有个 APIRouter 类,可以将从属不同功能api接口分离到多个文件中,降低系统耦合度。这样多个系统之间如果有重复的模块,就可以拖拖拽拽复制粘贴了。


二、实现

1.目录结构

project【项目根目录】
   |-----server_router【路由目录】
   |		|------keyword_auto【功能模块1|		|			|------utils【业务逻辑1|		|			|------server.py【路由脚本1|		|
   |		|------keyword_pick【功能模块2|		|			|------utils【业务逻辑2|		|			|------server.py【路由脚本2|		|
   |		|------semantic_search【功能模块3|					|------utils【业务逻辑3|					|------server.py【路由脚本3|		
   |-----server.py【服务启动脚本】

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

keyword_auto、keyword_pick、semantic_search 是部署在同一服务下的三个独立的功能模块,必要时可以拆开各自独立部署

2.文件内容

  1. 三个功能模块中的 server.py【各自定义自己的接口方法】
# 创建路由对象
from fastapi import APIRouter
app = APIRouter()


# 定义接口方法
@app.post("/custom")
async def root(data):
    return {"data": data, "code": 1, "msg": "请求成功"}



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  1. 项目根目录下的 server.py【汇总各接口方法到同一服务下】
import uvicorn
from fastapi import FastAPI

# 引入路由
from server_router.keyword_auto.server import app as app_keyword_auto
from server_router.keyword_pick.server import app as app_keyword_pick
from server_router.semantic_search.server import app as app_semantic_search

# 创建服务
app = FastAPI()


# 路由挂载
app.include_router(app_keyword_auto, prefix='/keyword_auto', tags=['检索词联想', '列表页'])
app.include_router(app_semantic_search, prefix='/semantic_search', tags=['语义检索条件聚合', '列表页+详情页'])
app.include_router(app_keyword_pick, prefix='/keyword_pick', tags=['文本关键词提取', '建议生产环境下使用'])


if __name__ == '__main__':
	# 启动服务
    uvicorn.run(app="server:app", host='0.0.0.0', port=2333, workers=2)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

调用方式:
ip:端口/挂载路由/模块各自路由
当前例子中的路由为 192.168.0.233:2333/keyword_auto/custom

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/464688
推荐阅读
相关标签
  

闽ICP备14008679号