在Swagger UI执行GET API时500状态码无响应体显示问题
Swagger UI不显示500错误响应体的原因与解决
这不是5xx错误的默认行为,核心问题出在你的OpenAPI(Swagger)规范里未定义500状态码对应的响应体结构。
Swagger UI严格遵循你编写的OpenAPI规范展示内容——哪怕后端实际返回了响应体,只要规范里没声明这个状态码的响应结构,UI就不会渲染出响应体内容。而Postman不依赖OpenAPI规范,会直接展示服务器返回的所有响应数据,所以能看到响应体。
解决步骤很简单:在OpenAPI规范中为该GET接口的500状态码补充响应体定义。以下是OpenAPI 3.0的示例(YAML格式):
paths: /your-target-endpoint: get: parameters: - name: param1 in: query schema: type: string - name: param2 in: query schema: type: string responses: '200': description: 请求成功 content: application/json: schema: # 这里填写你的成功响应结构 '500': description: 服务器内部错误 content: application/json: schema: type: object properties: errorMsg: type: string errorCode: type: integer # 此处对应后端实际返回的500响应体字段
如果后端返回的响应媒体类型不是application/json(比如text/plain),记得同步修改content下的媒体类型。
修改并重新加载OpenAPI规范后,再在Swagger UI中执行请求,就能看到500错误的响应体了。
内容的提问来源于stack exchange,提问作者pensee
相关产品推荐
相关产品推荐

