Notion Blog
技术分享1 分钟阅读

fastapi mock平台实现接口转发

在做一个第三方的mock平台遇到一个问题,第三方的接口很多,有不是所有的接口都需要mock,这是就需要把不需要mock的接口转发走原来的第三方

我们的mock平台就需要按照规则添加接口就可以了

mock平台原理

通过fastAPI 编写第三方的接口,接口返回数据按照自己的规则正常进行编写就行

接口的地址于第三方的一致

在请求第三程序的服务器修改etc/hosts文件

nginx 设置代理规则 指定接口走自己的mock平台

server {
        listen 443 ssl;
        server_name XXXXXXX;

        proxy_connect_timeout       600;
        proxy_send_timeout          600;
        proxy_read_timeout          600;
        send_timeout                600;

        location / {
            proxy_pass http://81.11.25.30/;
        }

        location /WebAPI/getlogininfo {
            proxy_pass http://127.0.0.1:8001/WebAPI/getlogininfo;
        }
    }

把请求第三方的域名,对应的IP换成mock平台IP,这样请求第三方就会走到mock平台,同时也不影响到业务代码

比如这是转发第三方接口的示例

@app.get("/WebAPI/{path_name}")
async def forward_get(path_name, request: Request):
    headers = request.headers
    body = await request.body()
    return requests.post(url=f"https://81.71.5.230/WebAPI/{path_name}",headers=headers, data=body, verify=False).json()

有关使用上的问题,欢迎您在底部评论区留言,一起交流~

读者评论

评论会同步写入该文在 Notion 中的页面底部(与正文同页,便于管理)。

0/1500

暂无评论,欢迎抢沙发。