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【服务启动脚本】

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. 项目根目录下的 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)

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

  • 15
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论
### 回答1: FASTAPI是一个用于快速构建Web APIPython库。它提供了很多方便的功能来帮助你轻松地实现接口自动化平台。 要使用FASTAPI实现接口自动化平台,首先你需要安装它: ``` pip install fastapi ``` 然后,你可以使用以下代码来创建一个简单的Web API: ```python from fastapi import FastAPI app = FastAPI() @app.get("/") def read_root(): return {"Hello": "World"} ``` 这样就可以在浏览器中访问这个API了,例如: ``` http://localhost:8000/ ``` 你还可以使用FASTAPI的各种装饰器和类型注解来声明路由和参数,以及返回值的数据类型。 例如,你可以使用以下代码实现一个带参数的API: ```python from fastapi import FastAPI, Query app = FastAPI() @app.get("/items/{item_id}") def read_item(item_id: int, q: str = Query(None, min_length=3, max_length=50)): return {"item_id": item_id, "q": q} ``` 这样,你就可以在浏览器中访问这个API了,例如: ``` http://localhost:8000/items/42?q=test ``` 希望这些信息能帮助你使用FASTAPI实现接口自动化平台。 ### 回答2: 使用FASTAPI可以实现接口自动化平台,其中包括以下几个步骤: 首先,我们需要创建一个基于FASTAPI的项目。可以使用FASTAPI的命令行工具快速地创建一个项目骨架,或者手动创建一个Python项目并添加FASTAPI库的依赖。通过定义路由和处理函数,我们可以创建多个接口。 其次,为了实现接口的自动化测试,我们可以使用Python的unittest库或者其他测试框架来编写测试用例。在测试用例中,可以使用FASTAPI提供的测试客户端来发送HTTP请求,模拟接口的调用,并验证接口返回的结果是否符合预期。 接下来,为了方便测试用例的管理和执行,可以使用测试管理工具,如pytest或unittest等。这些工具可以帮助我们组织和执行测试用例,并生成测试报告,便于排查问题和分析测试结果。 此外,为了提高测试的效率和可维护性,我们可以使用一些辅助工具。比如,可以使用Mock工具来模拟接口的依赖,避免测试受到外部因素的影响。另外,可以使用数据驱动的方法来设计测试用例,通过参数化和数据驱动的方式,复用测试代码,并扩展测试覆盖范围。 最后,为了监控和分析接口的性能和健康状况,我们可以使用FASTAPI提供的性能监控和日志功能,监控接口的响应时间和请求量,以及接口的异常情况。可以使用工具如Prometheus和Grafana等来可视化这些数据,并进行分析和报警。 综上所述,通过使用FASTAPI和相关工具,我们可以实现一个完整的接口自动化平台,实现接口的自动化测试、管理和监控。这样可以提高开发效率,保证接口质量,并及时发现和解决问题。 ### 回答3: FASTAPI是一个基于Python的现代、快速(高性能)的Web框架,它可以用于构建接口自动化平台。 使用FASTAPI实现接口自动化平台具体步骤如下: 1. 安装FASTAPI:首先,需要在系统中安装FASTAPI框架。可以使用pip命令来进行安装:pip install fastapi。 2. 创建接口脚本:接下来,需编写接口脚本,描述各个接口的请求方法、路径和参数等信息。可以使用Python的异步编程来实现更高的性能。 3. 定义路由:在接口脚本中,需要使用FASTAPI提供的装饰器来定义路由路由用来将请求映射到相应的处理函数上。 4. 实现接口逻辑:在编写接口脚本时,需要根据实际需求来编写接口逻辑代码。这些代码用于处理请求,并返回相应的响应结果。 5. 启动应用:编写一个主文件,用于启动FASTAPI应用。在这个文件中,需要导入接口脚本,将其注册到FASTAPI应用中。 6. 运行应用:运行主文件,启动FASTAPI应用。可以使用uvicorn等工具来运行FASTAPI应用,并监听相应的端口。 通过以上步骤,就可以使用FASTAPI实现接口自动化平台。用户可以通过发送请求来调用相应的接口,平台会根据接收到的请求信息,将其转发给相应的接口处理函数,并返回处理结果给用户。这样,用户就可以方便地进行接口测试、调试和集成等操作,提高开发效率和测试质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

什么都干的派森

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值