使用HttpStatusCode.OK时的SwaggerResponse属性在UI中不显示

时间:2019-01-30 11:14:11

标签: asp.net-web-api2 swagger-ui swashbuckle

我有一个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之外的任何状态代码,它都可以正常工作...

enter image description here

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

我很困惑!

没有人知道为什么它不只出现在HttpStatusCode.OK吗?

在此先感谢您的帮助

[EDIT1]

响应在创建的定义文件中,只是不显示在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"
        }
      }

,但用户界面中仅显示了400和500

1 个答案:

答案 0 :(得分:0)

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

对于POSTS,它仍然在顶部显示为空,但是添加了[SwaggerResponseRemoveDefaults]来解决此问题。

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