开发提效之vscode插件一键生成接口请求代码

功能简介

笔者所在的公司为了开发提效,因此实现了通过vscode插件预览接口文档 及一键生成请求代码 ,及ts interface代码。

效果展示

先给大家看看效果

  1. 右侧小地球图标为面板入口,点击后我们可以看到树形接口文档列表
  2. 点击某个具体的文档,我们能在主面板看到接口文档信息。
  3. 右键该文档我们也能出现选项面板,当点击to axios时,便一键生成了我们项目所需的请求代码及interface代码

插件使用

如果大家想使用该插件,可以在vsode商店直接搜索 doc2http

使用步骤也很简单,如下所示

  1. 通过ctrl + shift + p呼出vscode命令面板, 输入 doc2http:Config 来生成初始配置, 来告诉该插件如何去获取后端接口数据。(目前仅支持apifox)
  2. 当配置生成好后,我们就能在vscode左侧活动栏位置看到小地球进行使用了

该插件的一键生成可以分为两种情况,下面简单介绍下

  • 生成请求文件:文件的路径及命名及路径都同接口文档,只不过命名是取得拼音。
    • apifox.ts 存放请求相关代码
    • interface 存放类型声明相关
  • 代码生成规则:目前是根据模板来生成代码,分为两部分,一部分是头部import导入,一部分是导出得请求方法。如下所示
ts 复制代码
/* eslint-disable @typescript-eslint/no-unused-vars */
/* eslint-disable no-trailing-spaces */
/* eslint-disable no-irregular-whitespace */
/* eslint-disable vue/no-irregular-whitespace */
/* eslint-disable sort-imports */
import qs from 'qs'
import type { IConfig } from '@galaxy/swrv'
import type { AxiosRequestConfig } from 'axios'
import http from '../../../http'
import { useMutation, useSWRGet } from '../../../swrv'
import { GetUcRoleListQuery, GetUcRoleListRes } from './interface'

// 分界线==========================头部导入上面代码,方法导出下面代码

/** axios 角色列表 */
export function GetUcRoleList(
    params: GetUcRoleListQuery,
    axiosConfig: AxiosRequestConfig = {},
): Promise<GetUcRoleListRes> {
    return http.get('/uc/role/list', {
        params,
        ...axiosConfig,
    })
}

由于公司请求写法相对固定,便写死了模板类型,笔者也在将一些功能重构中,准备做成配置的形式,方便各种不同的应用场景,以及一些体验问题的改善。如果大家感兴趣,也可以直接拿源码二次改造或者提pr来共建。

如果大家现在想使用该插件,则需要做添加冗余代码来兼容头部import,防止打包报错

  1. 提供@galaxy/swrv 与 swrv 文件 来兼容 此头部import import type { IConfig } from '@galaxy/swrv' 及 import { useMutation, useSWRGet } from '../../../swrv'

源码地址

github.com/wangziweng7...

相关推荐
无巧不成书021833 分钟前
2026最新Next-AI-Draw-io全攻略:AI驱动专业图表生成,Docker/Node.js本地部署零踩坑指南
人工智能·docker·node.js·next-ai-draw-io
悟空瞎说4 小时前
我踩过的4个Node.js微服务经典Bug,用一个库彻底解决(2000字详解+可直接复用代码)
后端·node.js
捉鸭子8 小时前
某红书X-s X-s-common VMP逆向(算法还原)
python·web安全·网络安全·node.js·网络爬虫
freewlt9 小时前
Node.js 性能分析实战指南:从入门到精通
node.js
火乐暖阳851059 小时前
Vue3+Node.js
vue.js·node.js·pnpm·koa2·myslq2
被巨款砸中9 小时前
从零到一:构建高效 Node.js 后端 API (Koa + Prisma 实战)
前端·javascript·vue.js·node.js·web
网络点点滴11 小时前
Node.js-填充模板
node.js
zhensherlock19 小时前
Protocol Launcher 系列:Trello 看板管理的协议自动化
前端·javascript·typescript·node.js·自动化·github·js
iNgs IMAC1 天前
如何在Windows系统上安装和配置Node.js及Node版本管理器(nvm)
windows·node.js
ZJY1321 天前
3-12:路由和重构
后端·node.js