Swashbuckle Swagger UI:如何从xml注释中删除参数中所需的内容

我想更改控制器中某些参数的必需属性。 我使用XML注释来链接到Swagger。 这里的示例图像

在继续之前,请仔细考虑您的参数。 该参数是否真的需要,您的输入是否反映了这一点? 是否有一个合理的默认值,在这种情况下会有什么预期的行为? 根据您的答案,您可能更喜欢以下两种解决方案之一:

选项1:可选参数

如果accessTokenID具有合理的默认值,则可以指定API签名和Swashbuckle将根据需要停止标识参数。

例如,此示例中的id将在Swagger UI中解析为可选:

 public HttpResponseMessage Get(int id = 0) 

如果您的参数确实不是必需的,那么可空类型可能更有意义(例如,如果列出空输入上的所有值):

 public HttpResponseMessage Get(int? id = null) 

选项2:SwaggerDefaultValue属性

Swashbuckle GitHub中的解决方案创建了一个IOperationFilter来处理SwaggerDefaultValue属性并将它们应用于Swagger UI。 如果您希望需要参数,可以使用此解决方案,但希望在Swagger UI中设置一些默认值。

例如,这将在Swagger UI文本字段中显示“0”而不是“ (必需) ”:

 [SwaggerDefaultValue("id", "0")] public HttpResponseMessage Get(int id)