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

如何在Swagger中传入路径数组以减少重复代码?

问题根因

Swagger OpenAPI 3 规范明确要求paths属性必须为对象类型,键是接口的请求路径,值是对应路径的请求方法、参数、响应等定义。你当前直接将数组类型的paths赋值给配置项,不符合规范,因此无法正常解析。

修复方案

你只需要将拆分的路径数组合并为单个对象即可,推荐用reduce方法实现,支持你后续扩展多文件拆分的路径定义:

const paths = [
  {
    "/user/my-account": {
      get: {
        responses: {
          "200": {
            description: "Fetched Account successfully",
          },
          "404": {
            description: "No Account was found",
          },
        },
      },
    },
  },
  // 后续你拆分的其他路径对象都可以放到这个数组里
  // 比如从不同模块导入的路径定义:import orderPaths from './paths/order.js' 直接加到数组即可
];

// 数组合并为符合规范的paths对象
const mergedPaths = paths.reduce((accumulator, currentPathObj) => {
  return Object.assign(accumulator, currentPathObj);
}, {});

const swaggerConfig = {
  openapi: "3.0.0",
  info: {
    version: "0.0.1",
    title: "Swagger UI",
    description: " Swagger UI",
  },
  servers: [
    {
      url: "http://localhost:4000/",
      description: "Local server",
    },
  ],
  // 替换为合并后的对象
  paths: mergedPaths,
};

export default swaggerConfig;

验证

修改完成后重启Node服务,打开Swagger UI页面即可看到所有接口正常展示。

内容的提问来源于stack exchange,提问作者user16583522

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 14:00:04