🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

swagger-to-request

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

swagger-to-request

swagger generate request code

latest
npmnpm
Version
1.1.2
Version published
Weekly downloads
20
233.33%
Maintainers
1
Weekly downloads
 
Created
Source

swagger-to-request

swagger 自动生成 service 相关请求文件

该工具的定位为辅助前端进行接口类型定义

所有的接口类型都会放在 serviceTypes 文件中

使用方式

// package.json文件
  "scripts":{
    "swa":"esno ./src/swagger.ts"
  }

// swagger.ts
  import { generateRequest } from 'swagger-to-request';

  generateRequest({
    //  url:'http://test:8081/test-boot/v2/request.json' json文件也可以
    url:'http://test:8081/test-boot/v2/api-docs' // 文档的请求地址
    output:'./src/service' // 代码会生成在'./src/service/swagger中'
  })

工具使用必传的参数为url,output

文档将会生成在 ${output}/swagger 文件夹中

所有的类型会生成在方法前与 serviceTypes.ts 文件中

  // 默认使用
  import { generateRequest } from 'swagger-to-request';

  generateRequest({
    url:'http://test:8081/test-boot/v2/api-docs' // 文档的请求地址
    output:'./src/service' // 代码会生成在'./src/service/swagger中'
  })

可自定义请求的引用requestStr

默认为 import {request} from '@umijs/max'

generateRequest({
  url: "http://test:8081/test-boot/v2/api-docs", // 文档的请求地址
  output: "./src/service", // 代码会生成在'./src/service/swagger中'
  requestStr: "import axios from 'axios'",
});

可自定义请求体

generateRequest({
  url: "http://test:8081/test-boot/v2/api-docs", // 文档的请求地址
  output: "./src/service", // 代码会生成在'./src/service/swagger中'
  requestStr: "import axios from 'axios'",
  customFunBody: ({
    queryStr, //get请求传参
    bodyStr, // post请求传参类型
    resType, // 数据返回类型
    requestUrl, // 请求地址
    serviceName, // 请求方法名称
    fetchMethod, // 请求类型
  }): string => {
    return `export const ${serviceName} = (${
      queryStr ? "params: " + queryStr : ""
    } ${
      bodyStr ? "data:" + bodyStr : ""
    }) => axios.${fetchMethod}<${resType}>(\`${requestUrl}\`, {${
      queryStr ? " params, " : " "
    }${bodyStr ? "data" : ""} })\n\n`;
  },
});

// 默认生成代码为
import { request } from "@umijs/max";

export const testBootApprovalApprovalByPost = (data: ApprovalDTO) =>
  request < R > (`/crm-boot/approval/approval`, { method: "post", data });

// 自定义配置之后生成代码为
import axios from "axios";

export const crmBootRegionListByPost = (data: RegionSearchDTO) =>
  axios.post < RListRegionVO > (`/test-boot/region/list`, { data });

Keywords

umi

FAQs

Package last updated on 30 May 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts