FastApi 自带的接口文档,如果上线的话那么接口就直接暴露了,任何人只要在你的网址后面加上/docs
就能看到非常不安全。
1、关闭部分接口
如何关闭部分接口?例如我做的这个服务,本身就是公共 API,就是拿给大家用的,只有几个核心接口隐藏一下,其他接口直接公开。
要隐藏部分接口,我们可以在路由装饰器上面添加一个参数include_in_schema=False
,如下图所示:
2、隐藏说有接口
在初始化 FastApi 对象的时候,增加一个参数就可以了。这里是隐藏/docs
接口
app = FastAPI(docs_url=None)
如果全都隐藏 用下面的命令
app = FastAPI(docs_url=None, redoc_url=None)
3、如何自动切换
我们可以使用环境变量来自动控制,实现只有显式添加环境变量env=develop
的时候才显示文档,其他情况下都不显示。部分代码如下:
import os
from fastapi import FastAPI
env = os.getenv('env')
if env != 'develop':
app = FastAPI(docs_url=None, redoc_url=None)
else:
app = FastAPI()
当我们在自己电脑上开发的时候,我们在环境变量中添加一项env
,它的值为develop
,于是文档自动打开。当我们部署到线上环境的时候,把env
的值设置成prod
或者不设置,那么文档自动关闭。
主题授权提示:请在后台主题设置-主题授权-激活主题的正版授权,授权购买:RiTheme官网
声明:本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。