WebAPI - 自动生成包含所有可能响应的文档

时间:2016-03-16 20:17:08

标签: asp.net-web-api documentation asp.net-web-api2 documentation-generation asp.net-web-api-helppages

我看了一篇文章http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/creating-api-help-pages,它运作正常。但是,我希望在发送这些回复时添加所有可能的响应和条件。是否有任何工具可以分析每个WebAPI方法,找到所有带有响应的地方,为什么会发生这种情况并自动创建相关文档呢?

即。我有以下代码:

    public HttpResponseMessage GetEditorialRequests()
    {
        SetUser();
        try
        {
            var r_list = _service.RequestList(user.Id);
            if (r_list.Count > 0)
            {
                var list = mapper.Map<List<SmartphonePhotographerRequestElementApiModel>>(r_list);
                return Request.CreateResponse<List<SmartphonePhotographerRequestElementApiModel>>(HttpStatusCode.OK, list);
            }
            else
                return Request.CreateResponse(HttpStatusCode.NoContent);
        }
        catch (PixlocateBusinessLogic.NoSmartphonePhotographerLocationException)
        {
            return Request.CreateErrorResponse(HttpStatusCode.BadRequest, new HttpError("User does not have any locations") { { "CustomStatusCode", 466 } }); 
        }
    }

我想有文档,描述该方法返回:

  1. StatusCode = 200以及方法成功完成且找到元素时的元素列表
  2. 当方法成功完成且未找到任何元素时,StatusCode = 204
  3. 当找不到位置时StatusCode = 400(获取编辑请求的条件)和带有消息和CustomStatusCode的详细响应

1 个答案:

答案 0 :(得分:2)

您是否尝试过Swagger(和Swashbuckle)?

<强>扬鞭

  

Swagger是RESTful API的简单而强大的代表。凭借全球最大的API工具生态系统,数千名开发人员几乎在所有现代编程语言和部署环境中都支持Swagger。使用支持Swagger的API,您可以获得交互式文档,客户端SDK生成和可发现性。

<强> Swashbuckle

  

向WebApi项目无缝添加Swagger!结合ApiExplorer和Swagger / swagger-ui为您的API消费者提供丰富的发现,文档和游乐场体验。除了Swagger生成器之外,Swashbuckle还包含swagger-ui的嵌入式版本,一旦安装了Swashbuckle,它将自动提供。这意味着您可以使用灵活的发现UI来补充您的API,以帮助消费者进行集成。最重要的是,它需要最少的编码和维护,让您专注于构建一个很棒的API!

我在许多项目中使用它们,非常容易使用且非常强大。