【WEB API项目实战干货系列】- 接口文档与在线测试(二)
这一篇我们主要介绍如何做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项目实战干货系列】- 接口文档与在线测试(二)相关推荐
- 【WEB API项目实战干货系列】- API登录与身份验证(三)
上一篇: [WEB API项目实战干货系列]- 接口文档与在线测试(二) 这篇我们主要来介绍我们如何在API项目中完成API的登录及身份认证. 所以这篇会分为两部分, 登录API, API身份验证. ...
- 【WEB API项目实战干货系列】- API访问客户端(WebApiClient适用于MVC/WebForms/WinForm)(四)
目前最新的代码已经通过Sqlite + NHibernate + Autofac满足了我们基本的Demo需求. 按照既定的要求,我们的API会提供给众多的客户端使用, 这些客户端可以是各种Web站点, ...
- 【WEB API项目实战干货系列】- WEB API入门(一)
这篇做为这个系列的第一篇,做基本的介绍,有经验的人可以直接跳到第二部分创建 ProductController. 创建 Web API 项目 在这里我们使用VS2013, .NET 4.5.1创建一个 ...
- ASP.NET Web API 使用Swagger生成在线帮助测试文档
ASP.NET Web API 使用Swagger生成在线帮助测试文档 Swagger-UI简单而一目了然.它能够纯碎的基于html+javascript实现,只要稍微整合一下便能成为方便的API在线 ...
- 接口测试实战项目02:根据接口文档测试
大家好,我是测试奇谭的作者风风. 上两次,我们已经了解: 测试奇谭:什么是接口测试?这篇文章让你明白 测试奇谭:接口测试实战项目01:接口测试环境搭建 这次,我们正式进入测试阶段. 为什么要做接口测试 ...
- 教育平台项目后台管理系统:接口文档
课程管理模块接口文档 课程信息模块接口 接口 1:查询课程列表信息 名称: findCourseList 描述: 查询课程列表信息 URL: http://localhost:8080/lagou_e ...
- android网络游戏开发实战pdf_python爬虫开发与项目实战PDF高清文档下载
随着大数据时代到来,网络信息量也变得更多更大,基于传统搜索引擎的局限性,网络爬虫应运而生,本书从基本的爬虫原理开始讲解,通过介绍Pthyon编程语言和Web前端基础知识引领读者入门,之后介绍动态爬虫原 ...
- 【转】ASP.NET Web API 使用Swagger生成在线帮助测试文档,支持多个GET
以下为教程: 在现有webapi项目中,nuget安装以下两个插件 swagger.net.ui swashbuckle 安装完毕后可以卸载Swagger.NET,此处不需要! 安装完毕后屏蔽以下代码 ...
- opencv项目实战(2)——文档扫描OCR识别
文章目录 思路 文档扫描 代码 运行结果 文字识别 预处理 代码 运行结果 Debug 记录 思路 STEP 1: 边缘检测 STEP 2: 获取轮廓 STEP 3: 变换 文档扫描 代码 scan. ...
最新文章
- VMware上centos系统忘记账号和密码解决
- Android从零开始(七)
- 关于游戏烂代码的那些事(下)
- 蓝图中实现人物移动1
- 补习系列-springboot-使用assembly进行项目打包
- 问题 C: 能被3整除吗?
- verilog实现多周期处理器之——(一)基本概念以及总体框架
- 计算机通过注册表修改摄像机设备的名称
- 总结几个Linux系统中拷贝文件内容的方法
- 为什么电脑屏幕会横过来_电脑屏幕横过来了怎么办
- thrift linux java,解决Linux下安装thrift出现的Building Java Library ........ : no问题(以及其他安装thrift出现的问题)...
- 计算器程序java开方运算_模拟计算器java程序
- 苹果手机输入法软件测试,苹果手机三款输入法谁更牛?专业媒体评测后给出结果...
- 东北大学acm暑期夏令营第七天
- 函数极限和无穷大 函数各种情况极限的定义
- CAN光端机在西门子FC18/720消防主机海上风电厂之星型联网方式
- C#实现扫脸登陆 ---百度API
- MX487EISA+替代MAX1487EESA+T的优势,货源渠道
- 50个经典的增长黑客策略
- 阿里云购买磁盘后挂载
热门文章
- 使用Forms Authentication实现用户注册、登录 (三)用户实体替换
- PostgreSQL 统计所有数据表各自的总行数
- Prometheus(一):Web服务环境监控
- Binding(三):资源和ValueConverter
- Microsoft Build 2021大会开始后,Develop Blog一系列更新
- 为什么 IEnumerable 没有提供 ForEach ?
- 老刘在微软Ignite China大会上聊低代码
- 云原生那些顶级开源项目,你都用过哪些?
- 在 WSL2.0 的 Ubuntu 18 里使用 Docker
- ASP.NET Core分布式项目实战(第三方ClientCredential模式调用)--学习笔记