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

时间:2017-05-31 19:41:39

标签: c# swagger-ui swashbuckle

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

1 个答案:

答案 0 :(得分:4)

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

选项1:可选参数

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

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

public HttpResponseMessage Get(int id = 0)

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

public HttpResponseMessage Get(int? id = null)

选项2:SwaggerDefaultValue属性

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

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

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