【问题标题】:How to define response error metadata in swagger/swashbuckle WebAPI 2如何在 swagger/swashbuckle WebAPI 2 中定义响应错误元数据
【发布时间】:2016-05-09 09:52:10
【问题描述】:

我已经弄清楚如何在 swashbuckle 中创建响应对象元数据:

[Route("X/{Y:Guid}")]
[HttpGet]
[SwaggerResponse(HttpStatusCode.OK, "Bla", typeof(BlaDto))]
public IHttpActionResult GetSomething([FromUri] Guid someGuid)
{
    Bla returnObject;
    try
    {
        returnObject = _service.Get(someGuid);
    }
    catch (DatabaseException databaseException)
    {
        ModelState.AddModelError("DatabaseException", databaseException.Message);
        return BadRequest(ModelState);
    }

    return Ok(returnObject);     
}

我仍在寻找示例来定义请求对象元数据和 400 错误的元数据等。任何指针将不胜感激。

【问题讨论】:

    标签: c# asp.net-web-api asp.net-web-api2 swagger swashbuckle


    【解决方案1】:

    Swashbuckle 自动检测操作的对象元数据。可以通过添加更多SwaggerResponseAttributes 来指定错误的对象元数据。

    这是一个例子:

    [Route("X}")]
    [HttpPost]
    [SwaggerResponse(HttpStatusCode.Created, "Bla", typeof(BlaDto))]
    [SwaggerResponse(HttpStatusCode.Conflict, Type = typeof(ErrorResponse))]
    [SwaggerResponse(HttpStatusCode.BadRequest, Type = typeof(ErrorResponse))]
    public IHttpActionResult CreateBla(BlaDto bla)
    {
        BladDto returnObject;
    
        try
        {
            returnObject = _service.Create(bla);
        }
        catch (DatabaseException databaseException)
        {
            var error = new ErrorResponse { Message = databaseException.Message);
            return Content(HttpStatusCode.BadRequest, error);
        }
        catch (SomeOtherException ex)
        {
            var error = new ErrorResponse { Message = ex.Message);
            return Content(HttpStatusCode.Conflict, error);
        }
        return Ok(returnObject);     
    }
    
    public class ErrorResponse
    {
        string Message { get; set; }
    }
    

    【讨论】:

    • 你是在说,我不能使用'return BadRequest(ModelState);'并查看招摇响应示例吗?
    猜你喜欢
    • 1970-01-01
    • 2019-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-04
    • 1970-01-01
    • 2018-08-24
    相关资源
    最近更新 更多