首页 > 其他分享 >flask swagger ui文档生成

flask swagger ui文档生成

时间:2023-08-16 18:00:38浏览次数:47  
标签:flask 代码 api 文档 ui swagger 我们

最近一直在写api文档,不知道兄弟们有没有和我一样的感受,写文档比写代码还难受,写代码逻辑实现提交就完事了,写api文档那才叫难受,有些不合理的地方给反复来回改好几遍,不止代码要改,文档要改,注释要改,关键是文档还要让别人能看得懂


为了解决这个痛点我想起了swagger ui文档,因为我在jumpserver api文档上看到过,像这样

flask swagger ui文档生成_swagger

能实现交互,在线调式的api文档正是我需要的

我们知道fastapi框架是原生支持swagger的,但是flask框架怎么搞呢


ai上提供了两个思路

flask swagger ui文档生成_flask_02

这里是因为我原有的代码注释已经写的太多了,不想再因为文档侵入太多代码,所以我果断选择了第二种方式,当然如果有需要的兄弟可以根据自己的情况,第一种需要了解Flasgger,这个可以看官方文档学习

我们直接用浏览器打开Swagger Editor

swagger api文档在线编辑器,打开以后上面原有的会带有示例,将原有的示例清掉,写入我们自己开发系统的文档相关内容

flask swagger ui文档生成_swagger_03

左边侧可以编辑内容,右边是预览,如果编辑内容有语法报错的话,会有红色报错显示的,非常好用,至于说这种类似于yaml格式的api文档内容该如何编写,我的建议是你可以chat下


编辑完成后我们选择导出文件

flask swagger ui文档生成_flask_04

这里我们直接导出为yaml文件


接下来我们用swagger ui来渲染该文件

ai步骤

flask swagger ui文档生成_flask_05



上面步骤执行完成后我们需要用nginx作为web服务器来代理访问swagger ui下载下来的资源

flask swagger ui文档生成_flask_06

添加nginx配置

location /api/docs {
   alias /home//docs/swagger-ui/dist;
   index index.html;

重载配置生效



最终的效果:

flask swagger ui文档生成_flask_07

flask swagger ui文档生成_flask_08

flask swagger ui文档生成_flask_09


小结

工欲善其事必先利其器,好的易懂的api文档能帮助我们快速开发自己的内部系统或产品,这在前端后对接来说是非常重要,而且在编写文档的时候我们顺带重新review代码,减少了代码的不合理性和在调式过程中出现的一些bug


标签:flask,代码,api,文档,ui,swagger,我们
From: https://blog.51cto.com/u_15703497/7112006

相关文章

  • vscode1.80.2 Install terminal quit with output: 过程试图写入的管道不存在
    莫名其妙的错误。如果你尝试了各种修改密钥认证方法,修改密码,修改文件权限都不行,那恭喜你,大家同道中人,遇到了同一个错误。修改ssh的config文件,一般在你的.ssh路径下,windows是C:\Users\用户名\.ssh\config,linux是~/.ssh/config。如果是从code界面上打开,是在远程资源管......
  • jquery.ui的bxslider控件在IE下使用的问题
    使用了 bxslider控件进行网页的切换。发现在firefox切换得很稳定,按照设置的切换时间进行切换。但是换成IE浏览器发现,却不是那么回事了。包括IE8和IE10.明明设置了30秒有的时候10分钟都不切换,本以为切换失灵了,结果又在第11分钟切换了。但是刷新页面再来一次,可能又变成5分钟后切换......
  • Unity UGUI的InputField(输入框)组件的介绍及使用
    UGUI的InputField(输入框)组件的介绍及使用1.什么是UGUI的InputField组件?UGUI的InputField组件是Unity中的一个用户界面组件,用于接收用户的输入。它可以用于创建文本输入框、密码输入框等功能。2.UGUI的InputField组件的工作原理UGUI的InputField组件通过监听用户的输入事件,用......
  • 基于buildroot实现initramfs的启动以及文件系统的切换
    以新唐ma35d1开发板为例:1、修改文件:board/nuvoton/ma35d1/uboot-env.txtmmcboot=ifmmcdev0;thenecho"Bootingformmmc......";setenvbootargsroot=/dev/ram0 console=ttyS0,115200n8rdinit=/initmem=${kernelmem};mmcread${kernel_addr_r}0x18000xA000;......
  • 界面组件Telerik UI for WinForms R2 2023——拥有VS2022暗黑主题
    TelerikUIforWinForms拥有适用WindowsForms的110多个令人惊叹的UI控件。所有的UIforWinForms控件都具有完整的主题支持,可以轻松地帮助开发人员在桌面和平板电脑应用程序提供一致美观的下一代用户体验。TelerikUIforWinFormsR22023于今年6月份发布,此版本中集成了备受期......
  • Duilib VerticalLayout 滚动条绘制出错问题
    发现一个奇怪的问题,某个VerticalLayout添加多个控件,滚动条能正常显示但是滚动的时候,绘制出错,如下图: 后来发现xml添加属性bkcolor="#FF0F1415"后正常,应该是缺少bkcolor属性导致绘制异常 记录一下~......
  • flask的cbv
    eg:#cbv:基于类的视图MethodView继承自ViewfromflaskimportFlask,render_templatefromflask.viewsimportMethodViewapp=Flask(__name__,template_folder='templates')#3写个装饰器defauth(func):definner(*args,**kwargs):print('装饰器执......
  • 基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程
    (基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程)1Jenkins是什么?学习官网:Jenkins官网,Jenkins中文官网;Jenkins是一款开源CI&CD软件,用于自动化各种任务,包括构建、测试和部署软件;用Java语言编写的,可在Tomcat、Docker等流行的容器中运行,也可独立运行。......
  • NetSuite: Get specific Custom Record Types and related sub Custom Fields
    背景以前当使用search.create({})来获取数据时,我们需要制定特定的数据返回列;例如:search.createColumn(options)而query可以使用SELECT*FROM来动态返回所有的数据列(这在有的时候是一个优点),那么如何让search也动态返回所有的数据列呢?vararrColFlds=query.runSuiteQL({......
  • SwiftUI+Combine 依赖注入->Clean架构
     Clean架构是一种软件设计理念,它将应用程序的关注点分成不同的层,每个层都有特定的责任。它被称为"Clean",因为它提倡代码易于阅读、测试和维护,并且不受特定框架或技术的约束。在使用SwiftUI和Combine框架用Swift编写的iOS应用程序的背景下,Clean的架构可能看起来像这样的东西:表......