You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

swagger-generator-koa的multipart/form-data请求模型示例求助

解决swagger-generator-koa中multipart/form-data请求未被识别的问题

你的请求模型存在两处关键问题,导致swagger-generator-koa无法正确识别multipart/form-data类型接口:

  1. Joi数组规则冗余:Joi.array().items()不需要重复定义多个相同的Joi.binary()规则,重复定义会引发解析异常,只需声明一次即可作用于数组所有元素。
  2. 缺少显式Content-Type声明:部分Swagger生成库需要明确指定请求的Content-Type为multipart/form-data,否则无法匹配对应接口定义。

修正后的请求模型

{
    formData: {
        files: Joi.array()
            .items(Joi.binary().encoding('base64').max(2 * 1024 * 1024))
            .required()
    },
    model: 'uploadFiles',
    group: "uploads",
    description: "upload files",
    excludeFromSwagger: false,
    consumes: ['multipart/form-data'] // 显式指定请求内容类型
}

额外配置要求

确保你的Koa项目已配置支持multipart/form-data的中间件,比如koa-body(需启用multipart选项):

const koaBody = require('koa-body');

app.use(koaBody({
    multipart: true,
    formidable: {
        maxFileSize: 2 * 1024 * 1024 * 4 // 对应单文件2MB、最多4个文件的总限制
    }
}));

修改后,swagger-generator-koa就能正确识别该上传接口,你也可通过Swagger UI正常发起multipart/form-data请求。

内容的提问来源于stack exchange,提问作者syed kumail abbas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 06:35:15