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)
我想更改控制器中某些参数的必需属性。为了 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)