前端OpenAPI根据后端Swagger自动生成前端接口报错

测试之后发现是因为Map<Long,List<CommentVO>>的返回值类型的锅,改成Page<List<CommentVO>>即可解决。

前端使用的umiMAX的openapi,报错如下:

复制代码
      '            originalRef: BaseResponse<<boolean>>\n' +
      '        "401":\n' +
      '          description: Unauthorized\n' +
      '        "403":\n' +
      '          description: Forbidden\n' +
      '        "404":\n' +
      '          description: Not Found\n' +
      '      deprecated: false\n' +
      '      x-order: "2147483647"\n' +
      '  "/api/admin/passage/reject/{passageId}":\n' +
      '    get:\n' +
      '      tags:\n' +
      '        - admin-passage-controller\n' +
      '      summary: rejectPassage\n' +
      '      operationId: rejectPassageUsingGET\n' +
      '      produces:\n' +
      '        - "*/*"\n' +
      '      parameters:\n' +
      '        - name: passageId\n' +
      '          in: path\n' +
      '          description: passageId\n' +
      '    '... 78804 more characters,
    externals: [],
    externalRefs: {},
    rewriteRefs: true,
    preserveMiro: true,
    promise: { resolve: [Function (anonymous)], reject: [Function (anonymous)] },
    patches: 0,
    cache: {},
    openapi: {
      openapi: '3.0.0',
      info: {
        description: '无问青秋博客',
        version: 'v1.0',
        title: 'Serein博客API接口测试',
        contact: {}
      },
      tags: [
        { name: 'admin-category-controller', 'x-order': '2147483647' },
        { name: 'admin-comment-controller', 'x-order': '2147483647' },
        { name: 'admin-passage-controller', 'x-order': '2147483647' },
        { name: 'admin-tag-controller', 'x-order': '2147483647' },
        { name: 'admin-user-controller', 'x-order': '2147483647' },
        { name: 'category-controller', 'x-order': '2147483647' },
        { name: 'comment-controller', 'x-order': '2147483647' },
        { name: 'passage-controller', 'x-order': '2147483647' },
        { name: 'tag-controller', 'x-order': '2147483647' },
        { name: 'user-controller', 'x-order': '2147483647' }
      ],
      paths: {
        '/api/admin/category/addCategory': {
          post: {
            tags: [Array],
            summary: 'addCategory',
            operationId: 'addCategoryUsingPOST',
            requestBody: [Object],
            responses: [Object],
            responsesObject: [Object],
            deprecated: false,
            'x-order': '2147483647'
          }
        },
前端openapi生成接口报错

 preserveMiro: true,
    promise: { resolve: [Function (anonymous)], reject: [Function (anonymous)] },
    patches: 0,
    cache: {},
    openapi: {
      openapi: '3.0.0',
      info: {
        description: '无问青秋博客',
        version: 'v1.0',
        title: 'Serein博客API接口测试',
        contact: {}
      },
      tags: [
        { name: 'admin-category-controller', 'x-order': '2147483647' },
        { name: 'admin-comment-controller', 'x-order': '2147483647' },
        { name: 'admin-passage-controller', 'x-order': '2147483647' },
        { name: 'admin-tag-controller', 'x-order': '2147483647' },
        { name: 'admin-user-controller', 'x-order': '2147483647' },
        { name: 'category-controller', 'x-order': '2147483647' },
        { name: 'comment-controller', 'x-order': '2147483647' },
        { name: 'passage-controller', 'x-order': '2147483647' },
        { name: 'tag-controller', 'x-order': '2147483647' },
        { name: 'user-controller', 'x-order': '2147483647' }
      ],
      paths: {
        '/api/admin/category/addCategory': {
          post: {
            tags: [Array],
            summary: 'addCategory',
            operationId: 'addCategoryUsingPOST',
            requestBody: [Object],
            responses: [Object],
            responsesObject: [Object],
            deprecated: false,
            'x-order': '2147483647'
          }
        },
        '/api/admin/category/delete/{categoryId}': {
          put: {
            tags: [Array],
            summary: 'deleteCategory',
            operationId: 'deleteCategoryUsingPUT',
            parameters: [Array],
            responses: [Object],
            responsesObject: [Object],
            deprecated: false,
            'x-order': '2147483647'
          }
        },
        '/api/admin/comment/getComments/': {
          post: {
            tags: [Array],
            summary: 'getComments',
            operationId: 'getCommentsUsingPOST',
            requestBody: [Object],
            responses: [Object],
            responsesObject: [Object],
            deprecated: false,
            'x-order': '2147483647'
          }
        },       
        '/api/user/userInfoData': {
          get: {
            tags: [Array],
            summary: 'getUserInfoData',
            operationId: 'getUserInfoDataUsingGET',
            responses: [Object],
            responsesObject: [Object],
            deprecated: false,
            'x-order': '2147483647'
          }
        }
      },
      'x-openapi': {
        'x-markdownFiles': null,
        'x-setting': {
          language: 'zh-CN',
          enableSwaggerModels: true,
          swaggerModelName: 'Swagger Models',
          enableReloadCacheParameter: false,
          enableAfterScript: true,
          enableDocumentManage: true,
          enableVersion: false,
          enableRequestCache: true,
          enableFilterMultipartApis: false,
          enableFilterMultipartApiMethodType: 'POST',
          enableHost: false,
          enableHostText: '',
          enableDynamicParameter: false,
          enableDebug: true,
          enableFooter: true,
          enableFooterCustom: false,
          enableSearch: true,
          enableOpenApi: true,
          enableHomeCustom: false,
          enableGroup: true,
          enableResponseCode: true
        }
      },
      servers: [ { url: '//127.0.0.1:8081/api' } ],
      components: {
        requestBodies: {
          QueryPageRequest: {
            content: [Object],
            description: 'queryPageRequest',
            required: true
          },
          uploadPassageCoverUsingPOST: { content: [Object], required: true }
        },
        schemas: {
          AddPassageDTO: {
            type: 'object',
            properties: [Object],
            title: 'AddPassageDTO'
          },
   
          GetUserByIdListRequest: {
            type: 'object',
            properties: [Object],
            title: 'GetUserByIdListRequest'
          },
          LoginRequest: {
            type: 'object',
            properties: [Object],
            title: 'LoginRequest'
          },
          LoginUserVO: {
            type: 'object',
            properties: [Object],
            title: 'LoginUserVO'
          },
        
         
          Page_List_UserVO_: {
            type: 'object',
            properties: [Object],
            title: 'Page<<List<<UserVO>>>>'
          }
        }
      }
    },
    fetch: <ref *1> [Function: fetch] {
      isRedirect: [Function (anonymous)],
      Promise: [Function: Promise],
      default: [Circular *1],
      Headers: [class Headers],
      Request: [class Request],
      Response: [class Response],
      FetchError: [Function: FetchError]
    },
    resolver: { depth: 0, base: undefined, actions: [ [] ] },
    refmap: {}
  }
}

Node.js v20.10.0
相关推荐
掘金者阿豪1 天前
把业务数据变成共享仪表盘:Metabase可视化与远程访问实践
前端·后端
kyriewen1 天前
折腾了半年 AI 编程工作流,最后发现效率瓶颈是桌上那块屏幕
前端·javascript·ai编程
蜗牛前端1 天前
codex 全流程开发上线的高颜值礼簿小程序
前端·微信小程序
大龄秃头程序员1 天前
我在图文流 App 里落地双层缓存、弱网降级与 OOM 治理
前端
老王以为1 天前
React Renderer 分离的多平台架构
前端·react native·react.js
hunterandroid1 天前
Kotlin Coroutines 与 Flow:让异步任务更清晰
前端
Bigger1 天前
从零搭建 AI 代码审查服务:一份前端也能看懂的 Python 学习笔记
前端·ci/cd·ai编程
lichenyang4531 天前
JSAPI、NAPI、Biz、Imp:ASCF Demo 如何真正调用系统能力和 C++ 能力
前端
lichenyang4531 天前
IPC、JSVM、UIThread、libuv:ASCF 架构图里最容易混的几个词
前端
用户059540174461 天前
Redis记忆存储故障恢复测试踩坑实录:手动测试让我漏掉了2个一致性Bug
前端·css