在Flask-RestX里完全关闭swagger
flask-restx是个好东西,做API非常好用,虽然定义model比直接撸代码要烦一些,但是带来的好处是可以直接生成swagger,真是太方便了。
现在的问题是:这在开发测试阶段是很好,但是到了正式部署的时候还是应该把这些信息去掉,不然就方便了坏人了。
按照官方文档的说法,只要:
api = Api(app, doc=False)
即可"disable Swagger UI entirely",然而实际上并不"entirely"……
因为这样只是Swagger UI变成404了,但是swagger.json
还在,只要贴到swagger editor就全出来了……
放狗搜了半天,只在flask-restx的前身flask-restplus的Issues里找到一个Issue#464有人报这个需求,但没有解决方案。
只好读代码,还好很快就找到关键了……
api.init_app(app, add_specs=False)
就是加上这个add_specs=False
即可。
推送到[go4pro.org]