5.4.3 • Published 2 days ago

free-swagger v5.4.3

Weekly downloads
118
License
MIT
Repository
github
Last release
2 days ago

free-swagger

npm.io

free-swagger 基于 free-swagger-core,提供 api,根据 swagger 文档全量生成前端接口代码并写入至项目文件

安装

npm i free-swagger -D

务必使用 -D 参数作为开发依赖,防止被 web 打包工具打包

生成 api 文件

项目使用

demo: https://github.com/yeyan1996/free-swagger-demo

// swagger.config.js
const freeSwagger = require("free-swagger");

freeSwagger("https://petstore.swagger.io/v2/swagger.json");

参数为 swagger 源,可以是 url,也可以是本地的 json 文件的相对/绝对路径

image-20200208153153194

之后在 nodejs 中运行当前脚本

node swagger.config.js

或者绑定为 npm script

// package.json
"swagger": "node swagger.config.js"
npm run swagger

还可以接收一个对象,进行详细配置

// swagger.config.js
const freeSwagger = require("free-swagger");
const json = require("./swagger.json")

freeSwagger({
  source: json,
  header: "import http from './request'", // 假设请求库在 ./request
  lang: "js"
});

API

参数说明类型可选值默认值
source必选,swagger 源(url/文件路径/json 文件)string/json--
cookie可选,用于给作为 url 的 swagger 源鉴权的 cookiestring--
root可选,生成 api 的根路径string-当前路径 + "/src/api"
header可选,自定义头部代码string-"import axios from 'axios'"
lang可选,生成 api 语言string"js" / "ts""js"
jsDoc可选,代码块附加 jsdoc 注释boolean-true
templateFunction可选,模版函数(config:TemplateConfig): string-返回一个模版,用于自定义代码片段,参考底部示例
filename可选,生成 api 的文件名(name:string): string-name 为当前 swagger 中标注的 controller 名
typeOnly可选,只生成 interface/typedefbooleanfalse

TemplateConfig

free-swagger-core

默认模版

free-swagger 基于内置了默认模版用于生成 api 代码片段,具体见 free-swagger-core

生成 mock 文件

除了生成 api,free-swagger 还可以生成 mock 文件

输入一个 swagger 源,全量生成 mock 数据(json),配合其他 mock 工具实现本地 mock

npm.io

额外生成了一个 mock.js 文件用于汇总所有 json,这使得 mock 工具只需引入一个 mock.js 即可实现本地 mock

npm.io

注意:free-swagger 只输出 mock 文件,不提供本地 mock 服务

项目使用

demo: https://github.com/yeyan1996/free-swagger-demo

// swagger-mock.config.js
const { mock } = require("free-swagger");

mock("https://petstore.swagger.io/v2/swagger.json");

和生成 api 相同,传入 swagger 源

之后在 nodejs 中运行当前脚本

node swagger-mock.config.js

或者绑定为 npm script

// package.json
"mock": "node swagger-mock.config.js"
npm run mock

mock 功能同样支持详细配置

// swagger-mock.config.js
const { mock } = require("free-swagger");

mock({
  source: require("./swagger.json"),
  wrap:true
});

API

参数说明类型可选值默认值
source必选,swagger 源(url/文件路径/json 文件)string/json--
cookie可选,用于给作为 url 的 swagger 源鉴权的 cookiestring--
mockRoot可选,生成 mock 文件的根路径string-当前路径 + "/mock"
wrap可选,是否额外包裹一层标准接口返回格式 e.g {code:"200",msg:xxx,data:xxx}boolean-false

常见问题

swagger 文档不规范,请检查参数格式

当前 swagger 源可能需要鉴权,free-swagger 提供了 cookie 选项,填入有权限的 cookie

image-20200813131204090

或者直接将 swagger 源下载到本地,输入文件路径

使用 npm 形式安装后,打包工具报错

free-swagger 是 node 包,包含 node api,请勿在任何前端页面中使用!

某些接口的 mock 文件没有生成

不规范的 swagger 文档可能会导致部分 mock 数据丢失,free-swagger 会作出警告

image-20200813131308925

5.5.0-beta.0

2 days ago

5.4.3

1 year ago

5.4.2

1 year ago

5.4.1

1 year ago

5.4.0

1 year ago

5.3.8

1 year ago

5.3.7

1 year ago

5.3.5

2 years ago

5.3.3

2 years ago

5.3.4

2 years ago

5.3.2

3 years ago

5.3.1

3 years ago

5.3.0

3 years ago

5.2.1

3 years ago

5.1.6

3 years ago

5.2.0

3 years ago

5.1.4

3 years ago

5.1.3

3 years ago

5.1.2

3 years ago

5.0.1

3 years ago

5.1.1

3 years ago

5.1.0

3 years ago

5.0.0

3 years ago

4.4.0

3 years ago

4.3.6

3 years ago

4.3.4

3 years ago

4.3.5

3 years ago

4.3.3

3 years ago

4.3.2

3 years ago

4.3.1

3 years ago

4.2.3

3 years ago

4.2.2

3 years ago

4.2.1

3 years ago

4.2.0

3 years ago

4.1.0

3 years ago

4.0.1

3 years ago

4.0.0

3 years ago

3.5.3

3 years ago

3.5.2

3 years ago

3.5.1

3 years ago

3.5.0

3 years ago

3.4.0

3 years ago

3.3.1

3 years ago

3.3.0

3 years ago

3.2.0

3 years ago

3.0.0

3 years ago

3.1.0

3 years ago

2.5.8

3 years ago

2.5.9

3 years ago

2.5.6

3 years ago

2.5.7

3 years ago

2.5.5

3 years ago

2.5.4

3 years ago

2.5.3

4 years ago

2.5.2

4 years ago

2.5.1

4 years ago

2.5.0

4 years ago

2.4.1

4 years ago

2.4.0

4 years ago

2.3.2

4 years ago

2.3.0

4 years ago

2.3.1

4 years ago

2.2.5

4 years ago

2.2.4

4 years ago

2.2.3

4 years ago

2.2.2

4 years ago

2.2.1

4 years ago

2.2.1-alpha.0

4 years ago

2.2.0-alpha.0

4 years ago

2.1.0-alpha.0

4 years ago

2.0.5-alpha.2

4 years ago

2.0.5-alpha.0

4 years ago

2.0.2-alpha.0

4 years ago

2.0.3-alpha.0

4 years ago

2.0.0-alpha.0

4 years ago

2.0.1-alpha.0

4 years ago

1.5.4

4 years ago

1.5.3

4 years ago

1.5.2

4 years ago

1.5.1

4 years ago

1.5.0

4 years ago

1.4.6

4 years ago

1.4.5

4 years ago

1.4.4

4 years ago

1.4.3

4 years ago

1.4.2

4 years ago

1.4.1

4 years ago

1.4.0

4 years ago

1.3.4

4 years ago

1.3.3

4 years ago

1.3.2

4 years ago

1.3.1

4 years ago

1.3.0

4 years ago

1.2.4

4 years ago

1.2.3

4 years ago

1.2.2

4 years ago

1.2.1

4 years ago

1.2.0

4 years ago

1.1.1

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago

0.14.1

4 years ago

0.14.0

4 years ago

0.13.0

4 years ago

0.12.2

4 years ago

0.12.0

4 years ago

0.12.1

4 years ago

0.11.5

4 years ago

0.11.4

4 years ago

0.11.2

4 years ago

0.11.3

4 years ago

0.11.1

4 years ago

0.11.0

4 years ago

0.10.0

4 years ago

0.9.1

4 years ago

0.9.0

4 years ago

0.8.9

4 years ago

0.8.8

4 years ago

0.8.7

4 years ago

0.8.6

4 years ago

0.8.5

4 years ago

0.8.4

4 years ago

0.8.3

4 years ago

0.8.1

4 years ago

0.8.0

4 years ago

0.6.3

4 years ago

0.7.0

4 years ago

0.6.2

4 years ago

0.6.1

4 years ago

0.6.0

4 years ago

0.5.2

4 years ago

0.5.1

4 years ago