我目前正在执行以下操作并添加ProducesResponseType属性以生成更好的api文档
[HttpGet(Name=nameof(MyNewMethodAsync)
[ProducesResponseType(typeof(MyClassResponse), (int)HttpStatusCode.OK)]
[ProducesResponseType(typeof(MyClassResponse), (int)HttpStatusCode.BadRequest)]
[ProducesResponseType(typeof(MyClassResponse), (int)HttpStatusCode.NotFound)]
[SwaggerOperation(nameof(MyNewMethodAsync))]
public async Task<ActionResult<MyClassResponse>> MyNewMethodAsync([FromQuery] MyClassRequest request)
{}
我们是说上面的内容可以简化,不需要ProducesResponseType,相当于以下内容:
[HttpGet(Name=nameof(MyNewMethodAsync)
[SwaggerOperation(nameof(MyNewMethodAsync))]
public async Task<ActionResult<MyClassResponse>> MyNewMethodAsync([FromQuery] MyClassRequest request)
{}
如果我想为每个HttpStatusCode提供更好的描述
,那该怎么办?非常感谢
答案 0 :(得分:4)
简单地说,如果根据方法定义无法确定所有可能的响应状态代码,则ProducesResponseType
属性是必需的。例如,200是显而易见的,但如果您确实需要返回201,则需要指定。同样适用于404,等等。我当然不确定400,因为2.1现在自动检查ModelState.IsValid
,所以这现在可能是默认的响应类型,但如果没有,那么你也需要一个属性。 2.1这里唯一购买的东西,不再需要实际指定返回类型本身,只需要状态代码。