Swashbuckle Swagger UI:如何从 xml 评论中的参数中删除 required

Swashbuckle Swagger UI: How to remove required from parameters in xml commenting

我想更改控制器中某些参数的必需属性。为了 link Swagger,我使用了 XML 评论。

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

选项 1:可选参数

如果 accessTokenID 具有合理的默认值,您可以在 API 签名上指定该值,Swashbuckle 将根据需要停止识别该参数。

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

public HttpResponseMessage Get(int id = 0)

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

public HttpResponseMessage Get(int? id = null)

选项 2:SwaggerDefaultValue 属性

A solution in the Swashbuckle GitHub 创建了一个 IOperationFilter 来处理 SwaggerDefaultValue 属性并将它们应用于 Swagger UI。如果您希望需要参数,但想在 Swagger UI.

中设置一些默认值,则可以使用此解决方案

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

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