这一篇我们主要介绍如何做API帮助文档,给API的调用人员介绍各个 API的功能, 输入参数,输出参数, 以及在线测试 API功能(这个也是方便我们自己开发调试)

我们先来看看我们的API最终帮助文档及在线测试最终达到的效果:

概要图

GET API

添加产品API:

删除产品 API

接下来我们动手来实现上面的功能

给所有API添加注释信息

代码如下

[RoutePrefix("api/products")]public class ProductController : ApiController{/// <summary>/// 产品分页数据获取/// </summary>/// <returns></returns>[HttpGet, Route("product/getList")]public Page<Product> GetProductList(){throw new NotImplementedException();}/// <summary>/// 获取单个产品/// </summary>/// <param name="productId"></param>/// <returns></returns>[HttpGet, Route("product/get")]public Product GetProduct(Guid productId){throw new NotImplementedException();}/// <summary>/// 添加产品/// </summary>/// <param name="product"></param>/// <returns></returns>[HttpPost, Route("product/add")]public Guid AddProduct(Product product){throw new NotImplementedException();}/// <summary>/// 更新产品/// </summary>/// <param name="productId"></param>/// <param name="product"></param>[HttpPost, Route("product/update")]public void UpdateProduct(Guid productId, Product product){throw new NotImplementedException();}/// <summary>/// 删除产品/// </summary>/// <param name="productId"></param>[HttpDelete, Route("product/delete")]public void DeleteProduct(Guid productId){throw new NotImplementedException();}}

我们上图中显示的api帮助信息,全部从我们的注释信息中提取,所以这里的API注释信息必不可少.

添加Swagger.Net组件(自定义修改版本, 官方已多年不更新,只能自己更新了)

在项目中加入Swagger.Net组件, 由于这个已经在官方的版本上做了很多的更新,大家实践的过程中,直接从项目代码中复制(必要的时候可以做成Nuget组件发布后大家使用)

添加Swagger.NET步骤:

1. 在项目中引入Swagger.Net Project.

2. 在Web API项目的App_Start下面添加SwaggerNet.cs

代码如下

[assembly: WebActivatorEx.PreApplicationStartMethod(typeof(SwaggerNet), "PreStart")]
[assembly: WebActivatorEx.PostApplicationStartMethod(typeof(SwaggerNet), "PostStart")]
namespace Niusys.WebAPI.App_Start
{public static class SwaggerNet{public static void PreStart(){RouteTable.Routes.MapHttpRoute(name: "SwaggerApi",routeTemplate: "api/docs/{controller}/{action}",defaults: new { swagger = true });}public static void PostStart(){var config = GlobalConfiguration.Configuration;config.Filters.Add(new SwaggerActionFilter());}}
}

其主要是注册api文档的请求路由及拦截文档的请求.

3. 复制WebAPI项目中的SwaggerUI文件夹, 这里是帮助文档的页面处理文件.

4. WebAPI项目启用XML文档生成

这个时候就可以启动项目,在URL中输入swaggerui(http://localhost:14527/swaggerui/)目录,就可以访问我们的API帮助文档系统及在线测试了。

总结:

这里帮助文档的原理是通过我们在代码中的XML注释来实现的,其原理也是在请求到api/doc的时候,这个时候去取对应controler/action的xml帮助文档,让后做显示.

其测试是完全用的其内部疯转的jQuery Ajax来做的测试, 跟界面做了高度集成, 完全满足我们项目的需求。

文章转载出自:http://www.cnblogs.com/Flyear/p/4870373.html

【WEB API项目实战干货系列】- 接口文档与在线测试(二)相关推荐

  1. 【WEB API项目实战干货系列】- API登录与身份验证(三)

    上一篇: [WEB API项目实战干货系列]- 接口文档与在线测试(二) 这篇我们主要来介绍我们如何在API项目中完成API的登录及身份认证. 所以这篇会分为两部分, 登录API, API身份验证. ...

  2. 【WEB API项目实战干货系列】- API访问客户端(WebApiClient适用于MVC/WebForms/WinForm)(四)

    目前最新的代码已经通过Sqlite + NHibernate + Autofac满足了我们基本的Demo需求. 按照既定的要求,我们的API会提供给众多的客户端使用, 这些客户端可以是各种Web站点, ...

  3. 【WEB API项目实战干货系列】- WEB API入门(一)

    这篇做为这个系列的第一篇,做基本的介绍,有经验的人可以直接跳到第二部分创建 ProductController. 创建 Web API 项目 在这里我们使用VS2013, .NET 4.5.1创建一个 ...

  4. ASP.NET Web API 使用Swagger生成在线帮助测试文档

    ASP.NET Web API 使用Swagger生成在线帮助测试文档 Swagger-UI简单而一目了然.它能够纯碎的基于html+javascript实现,只要稍微整合一下便能成为方便的API在线 ...

  5. 接口测试实战项目02:根据接口文档测试

    大家好,我是测试奇谭的作者风风. 上两次,我们已经了解: 测试奇谭:什么是接口测试?这篇文章让你明白 测试奇谭:接口测试实战项目01:接口测试环境搭建 这次,我们正式进入测试阶段. 为什么要做接口测试 ...

  6. 教育平台项目后台管理系统:接口文档

    课程管理模块接口文档 课程信息模块接口 接口 1:查询课程列表信息 名称: findCourseList 描述: 查询课程列表信息 URL: http://localhost:8080/lagou_e ...

  7. android网络游戏开发实战pdf_python爬虫开发与项目实战PDF高清文档下载

    随着大数据时代到来,网络信息量也变得更多更大,基于传统搜索引擎的局限性,网络爬虫应运而生,本书从基本的爬虫原理开始讲解,通过介绍Pthyon编程语言和Web前端基础知识引领读者入门,之后介绍动态爬虫原 ...

  8. 【转】ASP.NET Web API 使用Swagger生成在线帮助测试文档,支持多个GET

    以下为教程: 在现有webapi项目中,nuget安装以下两个插件 swagger.net.ui swashbuckle 安装完毕后可以卸载Swagger.NET,此处不需要! 安装完毕后屏蔽以下代码 ...

  9. opencv项目实战(2)——文档扫描OCR识别

    文章目录 思路 文档扫描 代码 运行结果 文字识别 预处理 代码 运行结果 Debug 记录 思路 STEP 1: 边缘检测 STEP 2: 获取轮廓 STEP 3: 变换 文档扫描 代码 scan. ...

最新文章

  1. VMware上centos系统忘记账号和密码解决
  2. Android从零开始(七)
  3. 关于游戏烂代码的那些事(下)
  4. 蓝图中实现人物移动1
  5. 补习系列-springboot-使用assembly进行项目打包
  6. 问题 C: 能被3整除吗?
  7. verilog实现多周期处理器之——(一)基本概念以及总体框架
  8. 计算机通过注册表修改摄像机设备的名称
  9. 总结几个Linux系统中拷贝文件内容的方法
  10. 为什么电脑屏幕会横过来_电脑屏幕横过来了怎么办
  11. thrift linux java,解决Linux下安装thrift出现的Building Java Library ........ : no问题(以及其他安装thrift出现的问题)...
  12. 计算器程序java开方运算_模拟计算器java程序
  13. 苹果手机输入法软件测试,苹果手机三款输入法谁更牛?专业媒体评测后给出结果...
  14. 东北大学acm暑期夏令营第七天
  15. 函数极限和无穷大 函数各种情况极限的定义
  16. CAN光端机在西门子FC18/720消防主机海上风电厂之星型联网方式
  17. C#实现扫脸登陆 ---百度API
  18. MX487EISA+替代MAX1487EESA+T的优势,货源渠道
  19. 50个经典的增长黑客策略
  20. 阿里云购买磁盘后挂载

热门文章

  1. 使用Forms Authentication实现用户注册、登录 (三)用户实体替换
  2. PostgreSQL 统计所有数据表各自的总行数
  3. Prometheus(一):Web服务环境监控
  4. Binding(三):资源和ValueConverter
  5. Microsoft Build 2021大会开始后,Develop Blog一系列更新
  6. 为什么 IEnumerable 没有提供 ForEach ?
  7. 老刘在微软Ignite China大会上聊低代码
  8. 云原生那些顶级开源项目,你都用过哪些?
  9. 在 WSL2.0 的 Ubuntu 18 里使用 Docker
  10. ASP.NET Core分布式项目实战(第三方ClientCredential模式调用)--学习笔记