Skip to content

Latest commit

 

History

History
157 lines (142 loc) · 7.84 KB

pontConfig.md

File metadata and controls

157 lines (142 loc) · 7.84 KB

pont-config.json 配置

对于 pont-config.json 的配置,在 vscode-pont 插件中已经做了自动提示、自动补全、配置项描述提醒等功能。具体配置项介绍如下:

配置项 描述 类型 默认值
fetchMethodPath 可选项, 相对项目根目录路径。用于 Swagger 数据源需要登录才能请求成功的场景,可指定获取 Swagger 源数据的方法。默认为 node-fetch 的 fetch 方法,可通过自定义 fetch 方法获取带鉴权的接口的文档 具体使用方法请参看自定义数据获取文档 string
mocks 接口mock配置 见下方 -
name 数据源名称,仅多数据源时需配置 string ''
origins 配置每个数据来源,参考单个数据源配置。 见下方 -
originUrl 接口平台提供数据源的 open api url(需要免登),目前只支持 Swagger。如 "https://petstore.swagger.io/v2/swagger.json" string -
originType 数据源接口类型(注:暂不支持 SwaggerV1) "SwaggerV2"
| "SwaggerV3"
"SwaggerV2"
outDir 生成代码的存放路径,使用相对路径即可。如:"./src/api" string "src/service"
prettierConfig 生成的代码会用 prettier 来美化。此处配置 prettier 的配置项即可,具体可以参考 prettier 文档 object {}
pollingTime pont定时拉取数据,单位为秒,默认 20 分钟 number 60 * 20
scannedRange 废弃接口扫描范围,使用相对pont-config文件位置的相对路径。如:["./src/pages", "./src/components"]。需要配合pontTemplate中类FileStructures的getApiUseCases方法使用 如下所示。完成配置后,使用 pont scan 命令进行扫描。 Array<string> -
spiltApiLock 是否拆分api-lock.json到具体数据源 boolean false
surrounding 生成文件类型 "typeScript" | "javaScript" ""typeScript""
templatePath 指定自定义代码生成器的路径(使用相对路径指定)。一旦指定,pont 将即刻生成一份默认的自定义代码生成器。自定义代码生成器是一份 ts 文件,通过覆盖默认的代码生成器,来自定义生成代码。默认的代码生成器包含两个类,一个负责管理目录结构,一个负责管理目录结构每个文件如何生成代码。自定义代码生成器通过继承这两个类(类型完美,可以查看提示和含义),覆盖对应的代码来达到自定义的目的。具体使用方法请参看自定义代码生成器文档 string "serviceTemplate"
templateType 可选项。用于生成 pont 内置模板。配置该项时,一旦检测到本地模板文件不存在将自动使用配置的模板类型生成模板文件。内置模板功能强大,使用方法请参看内置模板使用方法及贡献流程 "fetch" | "hooks" ''
transformPath 数据源预处理。指定数据源预处理路径(使用相对路径指定)。Pont 将 Swagger.json 数据转换为内部标准数据源之后会尝试调用由transformPath
指定的转换程序,这样用户就有机会对数据进行一些处理。具体使用方法请参看自定义数据源预处理文档
string ''
usingOperationId 使用operationId作为方法名 boolean true
usingMultipleOrigins pont 支持一个项目中配置多个 Swagger 来源。此处配置是否启用多数据源 boolean false
baiduTranslateConfigs pont内置多种翻译引擎,用于转换非法类名(如包含特殊字符或者中文)。填写了此配置将优先使用百度开放翻译引擎。需填写APP_ID和APP_SECRET,详见https://fanyi-api.baidu.com/product/113 Array<{appId:string,appSecret:string}> null
translatePath 自定义翻译文件的生成路径,包含文件名(使用相对路径指定) string "node_modules/.pont/translate-dict.txt"

origins 配置项

配置项 描述 类型 默认值
name 数据源名称,仅多数据源时需配置 string ''
originType 同单个数据源,如果未配置使用外层公共部分 "SwaggerV2"
| "SwaggerV3"
"SwaggerV2"
originUrl 同单个数据源 string -
usingOperationId 同单个数据源,如果未配置使用外层公共部分 boolean true
transformPath 同单个数据源,如果未配置使用外层公共部分 string ''
fetchMethodPath 同单个数据源,如果未配置使用外层公共部分 string
outDir 同单个数据源,如果未配置使用外层公共部分 string "src/service"

mocks 配置项

配置项 描述 类型 默认值
enable 是否启用 boolean false
port mocks 服务的端口号 number 8080
basePath 接口的 basePath string
wrapper 接口返回结构,pont 可以计算返回数据类型(比如此处会替换到 {response}),此处可以指定接口返回结构。 object "{"code": 0, "data": {response}, "message": ""}"

配置示例

单数据源完整示例

{
  "outDir": "src/service",
  "originUrl": "",
  "originType": "SwaggerV2",
  "fetchMethodPath": "./fetchMethod",
  "transformPath": "./transform",
  "templatePath": "./template",
  "templateType": "",
  "scannedRange": "./scannedRange",
  "pollingTime": 1200,
  "spiltApiLock": false,
  "usingOperationId": true,
  "usingMultipleOrigins": false,
  "prettierConfig": {},
  "mocks": {
    "enable": false,
    "basePath": "",
    "port": 8080,
    "wrapper": "{\"code\": 0, \"data\": {response}, \"message\": \"\"}"
  }
}

多数据源完整示例

{
  "outDir": "src/service",
  "originUrl": "",
  "originType": "SwaggerV2",
  "fetchMethodPath": "./fetchMethod",
  "transformPath": "./transform",
  "templatePath": "./template",
  "templateType": "",
  "scannedRange": "./scannedRange",
  "pollingTime": 1200,
  "origins": [
    {
      "name": "",
      "originUrl": "",
      "originType": "SwaggerV2",
      "usingOperationId": true,
      "transformPath": "./transform",
      "fetchMethodPath": "./fetchMethod",
      "outDir": "src/service"
    },
    {
      "name": "",
      "originUrl": "",
      "originType": "SwaggerV2",
      "usingOperationId": true,
      "transformPath": "./transform",
      "fetchMethodPath": "./fetchMethod",
      "outDir": "src/service"
    },
  ],
  "spiltApiLock": false,
  "usingOperationId": true,
  "usingMultipleOrigins": true,
  "prettierConfig": {},
  "mocks": {
    "enable": false,
    "basePath": "",
    "port": 8080,
    "wrapper": "{\"code\": 0, \"data\": {response}, \"message\": \"\"}"
  }
}

scannedRange

需要进行扫描的文件夹路径,配合自定义 FileStructures.getApiUseCases 进行接口代码匹配。
使用 pont scan命令进行扫描

JSON配置

{
  // ...
  "scannedRange": ["./src/pages", "./src/components"],
}

代码示例

下例代码可以匹配出 API.xxx.xxx 的接口用法,如果有其他接口用法,重写该方法

// scannedRange.ts

/** API 使用case,用于scan扫描接口 */
getApiUseCases = (inter: Interface): Array<string> => {
  const context = inter.getContext();

  return [`API${this.usingMultipleOrigins ? `.${context.dataSource.name}` : ''}.${context.mod.name}.${inter.name}`];
};

mocks

{
  "mocks": {
    "enable": true,
    "basePath": "",
    "port": 8080,
    "wrapper": "{\"code\": 0, \"data\": {response}, \"message\": \"\"}"
  }
}