我想更改控制器中某些参数的必需属性。我使用XML注释来链接到Swagger。示例图片here
答案 0 :(得分:4)
在继续之前,请仔细考虑您的参数。该参数是否真的需要,您的输入是否反映了这一点?是否有一个理智的默认值,在这种情况下会有什么预期的行为?根据您的答案,您可能更喜欢以下两种解决方案之一:
如果accessTokenID
具有合理的默认值,您可以指定API签名和Swashbuckle将根据需要停止识别参数。
例如,此示例中的id
将在Swagger UI中解析为可选:
public HttpResponseMessage Get(int id = 0)
如果您的参数确实不是必需的,那么可空类型可能更有意义(例如,如果列出空输入上的所有值):
public HttpResponseMessage Get(int? id = null)
solution in the Swashbuckle GitHub创建了一个IOperationFilter来处理SwaggerDefaultValue属性并将它们应用于Swagger UI。如果您希望需要参数,可以使用此解决方案,但希望在Swagger UI中设置一些默认值。
例如,这将在Swagger UI文本字段中显示“0”而不是“(必需)”:
[SwaggerDefaultValue("id", "0")]
public HttpResponseMessage Get(int id)