fastapi开发api确实fast.东西开发完了,前后端调试也方便,要上线了,怎么保证接口文档不被非法访问呢?简单想了几个场景
内网部署
将swagger的入口监听在内网,域名访问的话,也直接解析成内网,外网不能访问也是个不错的选择.
直接关闭
这招算是釜底抽薪了,直接关门,咱都不访问.算是最简单有效的办法.
代码
app = FastAPI(
docs_url=None,
redoc_url=None
)
动态开关
默认关闭,确实有需要查看,临时打开,用完关闭,也是个不错的选择.
原理就是:访问/docs时,默认没有,通过另一个接口临时调整一个参数,这时才允许访问.
主要代码
app = FastAPI(
docs_url=None,
redoc_url=None
)
@app.get('/add_docs')
def show_docs_by_manager():
logger.info(app.docs_url)
msg = 'ok'
if app.docs_url is None:
app.docs_url = '/docs'
msg = 'docs is open !'
else:
app.docs_url = None
msg = 'docs is disabled !'
logger.info(app.docs_url)
return response_struct(msg=msg)