目录

前端自动生成写好的后端接口调用代码umi

前端自动生成写好的后端接口调用代码(umi)

当我们开发项目中,后端的接口已经准备好,我们现在需要解决的问题是如何让前端调用后台接口,实现接口信息的增删改查管理。前端以UMI框架,通常,我们会在前端定义

TS类型对象,并手动编写调用后台的方法,例如获取当前登录用户、退出登陆等。写前瑞代码的同学们,你们是自己编写调用后台接口的代码还是利用了某种自动生成方法?相信一些同学已经尝试过使用自动生成方法。比方说我们正在使用的Ant Design Pro框架,它已经支持自动化生成这些接口。现在,向大家介绍一个叫做 openapil的插件 ,它可以帮助我们实现接口的自动生成。

接下来,我们来探讨如何实现接口的自动生成。如果后端已经定义了各种接口,我们如何自动生成相应的接口调用代码呢? 我们需要一个文档或者介质来同步这些信息。这就是我们需要使用openapi规范的地方 。只要为oneapi插件提供基于其规范的文档,就可以实现接口的自动生成。

那么,什么是oneapi呢?简单地说,oneapi是一种接口文档的规范,可以理解为接口文档的格式或者规则。举个例子,我们常用的Swagger这种后端接口文档,就是遵循了openapi规范。

不了解Swagger的小伙伴可以浏览一下这篇文章

启动后端项目,访问http:/localhost:+后端项目端口号/+后端项目前缀+ /doc.html,查看接口文档的主页。

https://i-blog.csdnimg.cn/blog_migrate/cec3174b1177c40db3e141b6910d12bb.png

所以我们如果现在已经有了现成的后端,想要前端直接生成调用这些后端的代码,只要把这个基于这个openapi规范的文档提供给前端就可以了。

复制你的接口文档地址http:/localhost:7529/api/N3/api-docs,回到前端,找到config.ts中的openAPI插件。

https://i-blog.csdnimg.cn/blog_migrate/6e43370a5f15c4ecab96b5c3fd243c05.png

把多余的代码删掉。

https://i-blog.csdnimg.cn/blog_migrate/25878db948a49255f8611dfe1959d547.png

修改内容。

https://i-blog.csdnimg.cn/blog_migrate/12c3258f37aec50c86ed46882d0f2c9b.png

打开package.json,找到openapi运行(或在终端输入yarn run openapi)。

https://i-blog.csdnimg.cn/blog_migrate/c8d23c2ec66dc4e6de43d9ea94c3c42c.png

提示成功生成service文件。

https://i-blog.csdnimg.cn/blog_migrate/ea8096361bdec5922d5443e188d934fc.png

在services目录多出一个yuapi-backend目录,里面自动生成调用后端指定接口的方法代码。

https://i-blog.csdnimg.cn/blog_migrate/58be1e325ce3a0cec6c429e82fcb3635.png

可以点击interfaceInfoController.ts查看,生成了后端接口方法全部的代码。

https://i-blog.csdnimg.cn/blog_migrate/1e768cd11d3fbfa97aceb78937048daf.png

https://i-blog.csdnimg.cn/blog_migrate/ead1f5ce2e7d15153bcc9bc78231907c.png

而且还生成了ts类型,比如选中InterfaceInfoAddRequest(新增接口信息),然后按[Ctrl+鼠标左键]就可以看见它的请求参数类型:name名称、description描述、url接口地址、requestHeader请求头、responseHeader响应头、method请求类型。

https://i-blog.csdnimg.cn/blog_migrate/2665c2b845b381dc4fba67d85b37269c.png

https://i-blog.csdnimg.cn/blog_migrate/1085184784b7f6c45cbee8255658ef31.png

这个和我们在后端写的InterfaceInfoAddRequest(创建请求)完全一致:

https://i-blog.csdnimg.cn/blog_migrate/2c98fc7d5ce98d034f4975bbc14910ca.png