natapp内网穿透后,Swagger不能用了,原因是自动带了端口导致的.

本文描述了使用Natapp进行内网穿透时遇到的问题,即外网访问Swagger界面异常,并提供了通过在代码中指定Swagger配置的域名来解决该问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题表现:

用natapp内网穿透站点:http://xxx.natapp1.cc  ----- 穿透-----http://127.0.0.1:8899

内网swagger表现正常,如图所示:

外网访问swagger表现不正常,如图所示:

解决办法:

在代码中,swagger配置的地方,指定域名,如图所示:

在启动站点,重新访问:ttp://xxx.natapp1.cc 

就能正常了。

 

 

 

 

Python 本身并不直接提供将 gRPC 的 `.proto` 文件自动生成 Swagger (现在通常称为 OpenAPI) 的 YAML 文件的功能。gRPC 使用的是单独的 `protoc-gen-grpc` 和 `protoc-gen-openapigen` 插件来分别生成 gRPC 和 OpenAPI 的定义。不过,可以借助一些工具和组合使用外部脚本来完成这个转换过程。 以下是一个简化的步骤说明: 1. 首先,确保你已经安装了 gRPC 和相关的 protoc 版本,并且可以正常生成 gRPC 服务定义 (`grpc.pb.py` 或者 `.proto` 文件夹下的 `.proto` 文件)。 2. 安装 `protoc-gen-openapigen` 插件,如果你还没有安装,可以通过下面的命令行安装: ```bash pip install protobuf openapidocs ``` 3. 创建一个 Python 脚本,利用 `subprocess` 来调用 protoc 生成 OpenAPI 描述文件: ```python import subprocess def generate_swagger(file_path): command = ['protoc', '--plugin=protoc-gen-openapigen=./path/to/openapidocs/bin/openapidocs', '-Ipath/to/proto', '--openapigen_out=swagger.yaml', file_path] subprocess.run(command, check=True) # 替换 'myproto.proto' 为你实际的 .proto 文件名 generate_swagger('myproto.proto') ``` 这里的 `./path/to/openapidocs/bin/openapidocs` 是指代 `protoc-gen-openapigen` 的位置。 4. 脚本执行后会生成 `swagger.yaml` 文件,你可以进一步处理它,如果需要的话。 注意:这个过程可能会比较繁琐,因为涉及到多个步骤和可能依赖的操作系统环境。此外,如果你的 `.proto` 文件非常复杂,你可能需要调整插件的配置或者查找专门用于这种任务的库或工具
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值