首页 > 解决方案 > 使用 HttpStatusCode.OK 时的 SwaggerResponse 属性,在 UI 中不显示

问题描述

我有一个 asp.net WebAPI REST 服务,我在其中合并了 Swashbuckle。我正在使用,SwaggerResponse以便在 UI 中获得它。

例如,在我的控制器方法之上,我有

[SwaggerResponse(HttpStatusCode.OK, "Success", typeof(MyModel))]

我有以下版本..

 <package id="Swashbuckle" version="5.6.0" targetFramework="net47" />
 <package id="Swashbuckle.Core" version="5.6.0" targetFramework="net47" 

例如,如果我使用HttpStatusCode.Created, 或除此之外的任何状态代码都HttpStatusCode.OK可以正常工作......

在此处输入图像描述

但是,一旦我使用HttpStatusCode.OK它,它就不会出现。

我很困惑!

有谁知道为什么它不仅仅出现在HttpStatusCode.OK?

提前感谢您的帮助

[编辑1]

响应在创建的定义文件中,只是没有显示在 UI 中。即我有

"responses": {
      "200": {
        "description": "Success",
        "schema": {
          "$ref": "#/definitions/ClientResultsCollectionModel[ResultsModel]"
        }
      },
      "400": {
        "description": "Invalid input data",
        "schema": {
          "$ref": "#/definitions/ErrorResponseModel"
        }
      },
      "500": {
        "description": "Internal Error",
        "schema": {
          "$ref": "#/definitions/ErrorResponseModel"
        }
      }

但在 UI 中只显示 400 和 500

标签: asp.net-web-api2swagger-uiswashbuckle

解决方案


好的,我的问题是我有 css 来隐藏显示在文档顶部的响应。我有这个,因为它经常显示为空,但那是在我开始添加SwaggerResponse属性之前。

它在 POSTS 的顶部仍然显示为空,但添加了一个[SwaggerResponseRemoveDefaults]固定的 this。

因此,对于GETS来说,似乎想将 放在200顶部,与底部的响应分开。


推荐阅读