阅读 114

FastAPI实战:简易MockServe

Mock

我个人理解就是为了伪造返回结果的东西,MockServe通常说的就是接口未开放完成但是现在需要调用,所以无论是通过转发还是直接访问这个url,其结果基本就是自己定义的 当然做仔细点就是 给个类型其自动生成对应类型数据

预览图

使用技术栈

FastAPI + tortoise-orm + sqlite3

实现原理

Path参数实现,用户访问时如果这个Path参数存在数据库,对应请求方法也是对的那么就可以访问

核心代码

方法一:个人最开始实现的方法

async def mock(request: Request, url: str = Path(...)):
    try:
        mocks = await models.MockApi.filter(path=url, status=True).first()
        return mocks.body if mocks.method.upper() == request.method else ServeNotFount()
    except Exception as e:
        return ServeNotFount()

app.add_api_route(
    "/mock/{url}",
    endpoint=mock,
    methods=[
        "post",
        "get",
        "delete",
        "put"],
    include_in_schema=False
)

方法二, 纠正 @app.api_route

@app.api_route("/mock/{url}", methods=["post", "get", "delete", "put"], include_in_schema=False)
async def mock(request: Request, url: str = Path(...)):
    try:
        mocks = await models.MockApi.filter(path=url, status=True, method=request.method.lower()).first()
        return mocks.body
    except Exception as e:
        return ServeNotFount()

视频说明

源码地址

Gitee:
Github:

原文:https://www.cnblogs.com/zy7y/p/15102770.html

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐