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

使用swagger-ui-express时出现No operations defined等错误求助

修复swagger-ui-express的"No operations defined in spec!"和"Resolver error"问题

你的错误完全源于swagger.json的paths配置不符合Swagger规范,下面是具体问题和修复方案:

核心问题1:HTTP方法层级错误

你把post方法直接放在paths根节点下,和/api/category同级,这完全不符合规范。Swagger的paths结构必须是路径 -> HTTP方法(get/post等),所以post方法要嵌套在/api/category节点内部。

核心问题2:Get请求缺少HTTP方法声明

/api/category下直接写了tags、summary等属性,但未包裹在get字段中,Swagger无法识别这是一个Get接口。

多处拼写错误

  • tages → 正确写法是tags
  • summery → 正确写法是summary(且summary是字符串类型,你原Get请求里写成了数组)
  • formDate → 正确写法是formData
  • descripition → 正确写法是description
  • 参数名Category Image包含空格,不符合规范,建议改为categoryImage这类无空格命名

修复后的paths配置示例

"paths": {
    "/api/category": {
        "get": {
            "tags": [
                "Category"
            ],
            "summary": "Get all Categories",
            "parameters": [
                {
                    "name": "categoryName",
                    "in": "query",
                    "required": false,
                    "description": "Category name",
                    "type": "string"
                },
                {
                    "name": "page",
                    "in": "query",
                    "required": false,
                    "description": "Page Number",
                    "type": "integer",
                    "default": 1
                },
                {
                    "name": "PageSize",
                    "in": "query",
                    "required": false,
                    "type": "integer",
                    "default": 10
                }
            ],
            "responses": {
                "200": {
                    "description": "OK",
                    "schema": {
                        "$ref": "#/definitions/ServiceResponse"
                    }
                }
            }
        },
        "post": {
            "tags": [
                "Category"
            ],
            "summary": "Create Category API",
            "parameters": [
                {
                    "name": "categoryName",
                    "in": "formData",
                    "description": "Category Name",
                    "required": true,
                    "type": "string"
                },
                {
                    "name": "CategoryDescription",
                    "in": "formData",
                    "description": "Category Description",
                    "type": "string"
                },
                {
                    "name": "categoryImage",
                    "in": "formData",
                    "description": "Category Image",
                    "type": "file"
                }
            ],
            "responses": {
                "200": {
                    "description": "OK",
                    "schema": {
                        "$ref": "#/definitions/ServiceResponse"
                    }
                }
            }
        }
    }
}

额外检查点

如果修复后仍有问题,确认swagger.json最外层包含必要的基础结构:

{
  "swagger": "2.0",
  "info": {
    "title": "你的API标题",
    "version": "1.0.0"
  },
  "definitions": {
    "ServiceResponse": {
      // 你的响应结构定义
    }
  },
  "paths": {
    // 上面修复后的内容
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 17:27:25