【问题标题】:WebAPI - auto generate documentation with all possible responses [closed]WebAPI - 自动生成包含所有可能响应的文档 [关闭]
【发布时间】:2016-09-07 03:16:30
【问题描述】:

我读过一篇文章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 的详细响应

【问题讨论】:

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


    【解决方案1】:

    你试过Swagger(和Swashbuckle)吗?

    大摇大摆

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

    花言巧语

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

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

    【讨论】:

    • 我没试过。这些项目能做到吗?
    • 是的,这种工具可能对您非常有用!我们一直使用它们来记录我们公司的 api!
    猜你喜欢
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 2015-12-26
    • 2022-01-16
    • 1970-01-01
    • 2021-08-27
    • 2012-10-02
    相关资源
    最近更新 更多