0

我已经阅读了一篇文章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 的详细响应
4

1 回答 1

2

你试过Swagger(和Swashbuckle)吗?

昂首阔步

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

花花公子

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

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

于 2016-03-17T09:25:44.650 回答