曹永思

导航

swaager.json

  

 接口方法Json

/api/File/UploadFile
{
    "path":"/api/File/UploadFile",
    "mockPath":"/\\/api\\/File\\/UploadFile/",
    "methodName":"uploadFile",
    "method":"post",
    "summary":"文件上传",
    "isExportFile":false,
    "parameters":{
        "header":[

        ],
        "body":[

        ],
        "query":[

        ],
        "path":[

        ],
        "formData":[
            {
                "type":"file",
                "name":"file",
                "in":"formData",
                "description":"文件参数",
                "x-nullable":true,
                "camelCaseName":"file",
                "cardinality":"",
                "tsType":{
                    "description":"文件参数",
                    "isEnum":false,
                    "tsType":"string | Blob",
                    "isRef":false,
                    "isObject":false,
                    "isArray":false,
                    "isAtomic":false
                }
            },
            {
                "type":"string",
                "name":"directory",
                "in":"formData",
                "description":"目录名称",
                "default":"ccrt/",
                "x-nullable":true,
                "camelCaseName":"directory",
                "cardinality":"?",
                "tsType":{
                    "description":"目录名称",
                    "isEnum":false,
                    "tsType":"string",
                    "isRef":false,
                    "isObject":false,
                    "isArray":false,
                    "isAtomic":true
                }
            },
            {
                "type":"string",
                "name":"extension",
                "in":"formData",
                "description":"文件后缀名",
                "x-nullable":true,
                "camelCaseName":"extension",
                "cardinality":"?",
                "tsType":{
                    "description":"文件后缀名",
                    "isEnum":false,
                    "tsType":"string",
                    "isRef":false,
                    "isObject":false,
                    "isArray":false,
                    "isAtomic":true
                }
            }
        ],
        "all":[
            {
                "type":"file",
                "name":"file",
                "in":"formData",
                "description":"文件参数",
                "x-nullable":true,
                "camelCaseName":"file",
                "cardinality":"",
                "tsType":{
                    "description":"文件参数",
                    "isEnum":false,
                    "tsType":"string | Blob",
                    "isRef":false,
                    "isObject":false,
                    "isArray":false,
                    "isAtomic":false
                }
            },
            {
                "type":"string",
                "name":"directory",
                "in":"formData",
                "description":"目录名称",
                "default":"ccrt/",
                "x-nullable":true,
                "camelCaseName":"directory",
                "cardinality":"?",
                "tsType":{
                    "description":"目录名称",
                    "isEnum":false,
                    "tsType":"string",
                    "isRef":false,
                    "isObject":false,
                    "isArray":false,
                    "isAtomic":true
                }
            },
            {
                "type":"string",
                "name":"extension",
                "in":"formData",
                "description":"文件后缀名",
                "x-nullable":true,
                "camelCaseName":"extension",
                "cardinality":"?",
                "tsType":{
                    "description":"文件后缀名",
                    "isEnum":false,
                    "tsType":"string",
                    "isRef":false,
                    "isObject":false,
                    "isArray":false,
                    "isAtomic":true
                }
            }
        ]
    },
    "responses":{
        "description":"",
        "isEnum":false,
        "tsType":"ref",
        "target":"ResultObject3OfUploadResultDto",
        "isRef":true,
        "isObject":false,
        "isArray":false,
        "isAtomic":false
    },
    "mockData":{
        "Status":{
            "Code":"@integer(0, 100)",
            "Remark":"@string"
        },
        "ReturnData":{
            "id":"@string",
            "old_name":"@string",
            "new_name":"@string",
            "is_img":"@boolean",
            "suffix":"@string",
            "file":{
                "path":"@string",
                "url":"@string",
                "down_load_url":"@string",
                "size":"@integer(0, 100)",
                "width":"@integer(0, 100)",
                "height":"@integer(0, 100)"
            },
            "thumbnail":{
                "path":"@string",
                "url":"@string",
                "down_load_url":"@string",
                "size":"@integer(0, 100)",
                "width":"@integer(0, 100)",
                "height":"@integer(0, 100)"
            }
        },
        "ResponseTime":"@string"
    }
}
View Code

 

formDataItem

{"type":"file","name":"file","in":"formData","description":"文件参数","x-nullable":true,"camelCaseName":"file","cardinality":"","tsType":{"description":"文件参数","isEnum":false,"tsType":"string
| Blob","isRef":false,"isObject":false,"isArray":false,"isAtomic":false}}

 

method.js

import BaseApi from './base'
import { <% imports.forEach( (item,index) => {%><%= item+(index<imports.length-1?', ':'') %><% }) %> } from './types'

// -------------------------接口方法-------------------------
// <%=description || '无' %>
export default class <%=name%> extends BaseApi {<% methods.forEach( method => {%>
  /**
   * <%=JSON.stringify(method) || '无'%>
<% method.parameters.all.forEach( parameter => { %>   * @param <%= parameter.type %> - <%= parameter.in %> - <%= parameter.camelCaseName %> - <%= (parameter.description || '无')+'\n' %><%})%>   * 请求方式:<%= method.method %>
   */
  public <%=method.methodName %>(<% method.parameters.all.forEach( (parameter,index) => 
  { let paramType = parameter.isAny || parameter.tsType.target || parameter.tsType.tsType %><%= parameter.camelCaseName %><%= parameter.cardinality%>: <%- paramType === "array" ?"Array<"+parameter.tsType.elementType.target+">" :paramType%><%=(index<method.parameters.all.length-1?', ':' | any')%><% }) %>): <% if(method.isExportFile){%>void<% } else { %>Promise<<%=method.responses.target || 'void' %>><%}%> {<%if(method.isExportFile){%>
    return this.exportFile({
      url: '<%=method.path%>',
      method: '<%=method.method%>'<% if(method.parameters.all.length>0){ %>,<%}%><%=(method.parameters.formData.length>0?('      data: '+method.parameters.formData[0].camelCaseName):'')%><%= method.parameters.body.length>0?'\n      '+(method.parameters.body[0].name=='data'?'data':('data: '+(method.parameters.body[0].camelCaseName))):'' %><% if(method.parameters.query.length>0){%><%= (method.parameters.body.length>0?',\n      ':'\n      ')%>params: { <% method.parameters.query.forEach( (parameter,index) => { %><%= parameter.name==parameter.camelCaseName?parameter.camelCaseName:(parameter.name+': '+parameter.camelCaseName) %><%=(index<method.parameters.query.length-1?',':'')%> <% }) %>}<% } %>
    })<% } else if(method.parameters.formData.length>0){ %>
    const fileData = new FormData()
<% method.parameters.formData.forEach((formDataItem,indexformData) => { %><%if(formDataItem.type=='file' && formDataItem.tsType.tsType.indexOf("Blob")!=-1) { %>
    if (<%=formDataItem.name%> != null && <%=formDataItem.name%> != undefined) fileData.append('<%=formDataItem.name%>', <%=formDataItem.camelCaseName%>)<% }else{%>
    if (<%=formDataItem.name%> != null && <%=formDataItem.name%> != undefined) fileData.append('<%=formDataItem.name%>', <%=formDataItem.camelCaseName%>.toString())<% } %><% }); %>
    return this.requestData({
      url: '<%=method.path%>',
      method: '<%=method.method%>'<%=(method.parameters.formData.length>0?(',\n      data: fileData'):'')%><%= method.parameters.body.length>0?',\n      '+(method.parameters.body[0].name=='data'?'data':('data: '+(method.parameters.body[0].camelCaseName))):'' %><% if(method.parameters.query.length>0){ %><%= ((method.parameters.body.length>0||method.parameters.query.length>0)?',\n      ':'\n      ')%>params: { <% method.parameters.query.forEach( (parameter,index) => { %><%= parameter.name==parameter.camelCaseName?parameter.camelCaseName:(parameter.name+': '+parameter.camelCaseName) %><%=(index<method.parameters.query.length-1?',':'')%> <% }) %>}<% } %>
    })<% } else { %>
    return this.request({
      url: '<%=method.path%>',
      method: '<%=method.method%>'<%=(method.parameters.formData.length>0?(',\n      data: fileData'):'')%><%= method.parameters.body.length>0?',\n      '+(method.parameters.body[0].name=='data'?'data':('data: '+(method.parameters.body[0].camelCaseName))):'' %><% if(method.parameters.query.length>0){ %><%= ((method.parameters.body.length>0||method.parameters.query.length>0)?',\n      ':'\n      ')%>params: { <% method.parameters.query.forEach( (parameter,index) => { %><%= parameter.name==parameter.camelCaseName?parameter.camelCaseName:(parameter.name+': '+parameter.camelCaseName) %><%=(index<method.parameters.query.length-1?',':'')%> <% }) %>}<% } %>
    })<% } %>
  }<% }) %>
}
View Code

 

posted on 2023-09-22 12:50  曹永思  阅读(18)  评论(0)    收藏  举报