Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 虚张声势-返回响应的虚张声势文档?_C#_Rest_Asp.net Core_Swagger_Swashbuckle - Fatal编程技术网

C# 虚张声势-返回响应的虚张声势文档?

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

Swashback不会生成输出为“UserCreateResponse”的swagger.json,如何解决这个问题

    [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")]