C# 虚张声势-返回响应的虚张声势文档?
Swashback不会生成输出为“UserCreateResponse”的swagger.json,如何解决这个问题C# 虚张声势-返回响应的虚张声势文档?,c#,rest,asp.net-core,swagger,swashbuckle,C#,Rest,Asp.net Core,Swagger,Swashbuckle,Swashback不会生成输出为“UserCreateResponse”的swagger.json,如何解决这个问题 [HttpPost] public async Task<IActionResult> Update([FromBody]UserCreate Request) { UserCreateResponse response = new UserCreateResponse(); //do something he
[HttpPost]
public async Task<IActionResult> Update([FromBody]UserCreate Request)
{
UserCreateResponse response = new UserCreateResponse();
//do something here
// returns UserCreateResponse with http status code 200
return Ok(response);
}
[HttpPost]
公共异步任务更新([FromBody]UserCreate请求)
{
UserCreateResponse=新的UserCreateResponse();
//在这里做点什么
//返回http状态代码为200的UserCreateResponse
返回Ok(响应);
}
您不能这样做,因为它不会返回http状态码200400401等
[HttpPost]
public async Task<UserCreateResponse> Update([FromBody]UserCreate Request)
{
UserCreateResponse response = new UserCreateResponse();
//do something here
// returns UserCreateResponse
return response;
}
[HttpPost]
公共异步任务更新([FromBody]UserCreate请求)
{
UserCreateResponse=新的UserCreateResponse();
//在这里做点什么
//返回UserCreateResponse
返回响应;
}
您可以使用以下属性指定响应类型:
[ProducesResponseType(typeof(UserCreateResponse), 200)]
以下解决方案仅适用于V6.0之前的Swashback版本强>
从V6.0起不再支持SwaggerResponse
,请参阅。
另一个变体是使用
SwaggerResponse
属性,该属性还允许提供额外的描述:
[SwaggerResponse(HttpStatusCode.OK, "UserDTO", typeof(UserDTO))]
public async Task<IHttpActionResult> Get([FromODataUri] int key)
{
var result = await UserRepo.GetAsync(key);
...
return Ok(result);
}
不幸的是,
SwaggerResponse
在较新版本的swashback.AspNetCore中被删除ProducesResponseType
是一个不错的选择,如果您仍然需要字符串解释,可以使用可选的XML注释(请阅读更多相关内容)。感谢@JimAho提供的信息,我不知道这一点。我已经更新了我的答案,让读者知道。我只是简单地解决了状态代码200到400,同时将返回类型从returnok(json_结构)更改为return;返回新的JsonResult(json_结构);在异常处理程序中,问题得到了很好的解决。
[SwaggerResponse(HttpStatusCode.NotFound, "no data found")]
[SwaggerResponse(HttpStatusCode.BadRequest, "requiered request headers not found")]