# 模板管理&代码生成

可以添加模板然后根据文档内容生成代码,可生成前端代码,也可以生成后端代码。

前往【后台管理】-【模板管理】页面

img

# 常用模板

  • doc2ts-get

根据文档生成get请求代码

import { request } from '@/utils/request';

export const get${doc.urlNameUpper}Api = (data: { 
#foreach($param in ${doc.queryParams}) 
    ${param.name}#if(${param.require})?#end: ${param.typeTs};
#end
}) => {
  return request<{
#foreach($param in ${doc.responseParams}) 
    ${param.name}: ${param.typeTs};
#end
  }>({
    url: '${doc.url}',
    method: 'GET',
    additionalHeader: {
      'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
    },
    data
  });
};

生成效果图

img

  • doc2ts-post

根据文档生成post请求代码

import { request } from '@/utils/request';

export const post${doc.urlNameUpper}Api = (data: { 
#foreach($param in ${doc.requestParams}) 
    ${param.name}#if(${param.require})?#end: ${param.typeTs};
#end
}) => {
  return request<{
#foreach($param in ${doc.responseParams}) 
    ${param.name}: ${param.typeTs};
#end
  }>({
    url: '${doc.url}',
    method: '${doc.httpMethod}',
    additionalHeader: {
      'Content-Type': '${doc.contentType}'
    },
    data
  });
};
  • 生成ts对象
## 设置变量
#set($requestData="${doc.urlNameUpper}Data")
#set($requestParam="${doc.urlNameUpper}Param")
#set($responseType="${doc.urlNameUpper}Response")

export interface $requestParam {
#foreach($param in ${doc.queryParams}) 
  /** ${param.description} */
  ${param.name}: ${param.typeTs}
#end
}

export interface $requestData {
#foreach($param in ${doc.requestParams}) 
  /** ${param.description} */
  ${param.name}: ${param.typeTs}
#end
}

export interface $responseType {
#foreach($param in ${doc.responseParams}) 
  /** ${param.description} */
  ${param.name}: ${param.typeTs}
#end
}

/** ${doc.name} ${doc.httpMethod} ${doc.url} */
export async function ${doc.httpMethodLower}${doc.urlNameUpper}(body: $requestData, options ?: {[key: string]: any}) {
  return request<$responseType>(`/api${doc.url}`, {
  method: '${doc.httpMethod}',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  });
}

img

  • 生成curl
curl --location '${doc.url}?${doc.queryString}' \
#foreach($param in ${doc.headerParams})
--header '${param.name}: ${param.example}' \
#end
#if(${doc.httpMethod} == 'POST' || ${doc.httpMethod} == 'PUT')
--data '${doc.requestExample}'
#end