Auto-Swaggerauto-swagger是一款爬取swagger-ui并生成请求接口文件的命令行工具,旨在帮助接口调用者一键生成接口代码文件。传输地址:https://github.com/pablezhang/auto-swagger为什么需要auto-swagger?在工作中,通常后台开发的同学都会提供一个swagger接口文档。前端同学每次查询文档都会调用一个接口。等价的,我们把swagger-ui中接口的使用方法抽取出来,想象一下你在开发过程中是否遇到过以下问题:调用接口发现接口报404,硬查发现单词拼错~调用接口发现接口报400,仔细对比swager发现参数类型写错了,参数名写错了~不小心把请求类型写错了~....如果遇到了以上工作中的问题,你可能会在心里责备自己的粗心大意,同时心里有点累0.0。开发者在复制swagger-ui文档中的接口时,可能会复制错误的接口url、参数类型、参数名称等,特别是开发者在赶项目进度的时候出错的几率更大,面对大量的swagger-ui界面,以及不规范的文档。Auto-swagger的出现就是为了解决上述机械重复的swagger转录工作。使用方法1、安装auto-swaggernpminstallauto-swagger-g或yarnaddauto-swagger-g2、添加配置文件swagger.config.js如果是第一次使用,建议使用初始化配置命令。打开命令行工具auto-swaggerinit此时在你的目录下应该有一个swagger.config.js文件//swagger-url地址,找到返回主要json的requestconsturlAddress='http://你的-swagger-url/v2/api-docs';//待输出的swager接口文件存放路径,请使用相对路径。constoutputPath='Services';//指定过滤掉某些参数,这些参数通常是公共的,所以不需要在每个接口中传值constexcludeParamName=["Application-Key","Access-Token",“extFields”];constconfig={excludeParamName,outputPath,url:urlAddress};module.exports=配置;上面的代码是一个swagger.config.js文件,配置简单3.开始获取swagger-ui接口文件,执行下面的命令auto-swaggerrun此时,你会在你指定的outputPath中发送一些SomeService文件,这些文件就是接口调用文件。至此基本的使用已经完成了如何在项目中集成auto-swagger生成的接口文件呢?先看看生成的接口文件长什么样。这里使用了一个公开的swagger地址:http://petstore.swagger.io///Operationsaboutuser.ts/***@Description:User*//**注意Request是自己封装的ajax请求文件,需要自行实施。*/importRequestfrom'utils/Request';classOperationsaboutuser{/***接口介绍这只能由登录用户完成。*界面备注这只能由登录用户完成。*接口类型post*接口地址/用户*@parambody[objectObject]创建的用户对象*/publicasynccreateUser({body}){returnRequest({url:`/user`,method:'POST',data:body,query:{},app:'user',})}}//默认情况下,每个Controller都是一个文件,Controller的名字作为单例类的名字。exportdefaultnew操作aboutuser如何在项目中使用这些接口文件?第一步是自己实现Request文件。可能需要支持几个强制参数1.url:swagger请求路径2.method:"POST"|“获取”|“删除”|“PUT”等方法你需要支持3.data:通常是POST和只有PUT方法才有4.query:查询参数上面我们说了可能会支持这些参数,因为Request是自己实现的。您可以完全独立地决定形式参数。第二步,调用观察上面的文件,发现接口方法被单例封装了,所以使用importOperationsaboutuserfrom'Services/Operationsaboutuser'极其简单;asyncfunctioncreateBody(body){const{resultCode,resultMsg}=awaitOperationsaboutuser.createUser({body})if(resultCode==="0"){console.log("创建成功")}}createBody({id:"123",name:"foo"})//创建新的如何成功自定义接口文件格式以集成到现有项目中。比如项目中有Request.js,但是文件不在utils中,由于某些原因不能修改这些历史代码。auto-swagger可以自定义生成接口文件的方式。完整配置如下url:string:json信息interfaceoutputPathinswagger-ui:string:以swagger.config.js所在文件夹为根目录,指定要输出的接口文件到指定路径excludeParamName:string[]:需要过滤掉的参数,比如Application-key,token等各个接口需要的参数,不需要在各个接口文件参数中体现。childFunTemplate:string:每个接口函数的模板字符串。默认值如下>,方法:,数据:,查询:{},app:'user',})}`;5.parentFunTemplate:string:每个接口文件字符串的配置。默认值如下constparentFunTemplate=`/***@Description:*/importRequestfrom'utils/Request';//这个可以修改为指定的Request文件class{//也可以去掉不封装,单例模式,}exportdefaultnew`;
