前言:

前些天有网友提到了那个界面丑陋的SwaggerUI,让我想起了多年前实现的WebAPI文档未完成的功能点,于是,动手了,便有了本文的内容。

开源地址:https://github.com/cyq1162/Taurus.MVC

1、WebAPI 文档集成测试功能(增强说明)

开启WebAPI文档:web.config 或 appsettings.json

设置:"IsStartDoc": true

即可通过/doc访问自动生成的WebAPI文档

1、过滤掉无描述的接口。

文档自动生成的来源来自项目中的Xml文档注释

为了能更好的控制显示的结果,不带注释的类或方法(只收录public),不会被收录显示。

2、参数的显示与执行测试说明

自动和成的参数,来自以下方法的注释:

  1. /// <summary>
  2. /// 获取Token
  3. /// </summary>
  4. ///
  5. /// <param name="un" required="true" value="13488889999">用户名</param>
  6. /// <param name="pwd" type="header">密码</param>
  7. /// <param name="upload" type="file">图片上传</param>
  8. /// <returns>{success:true:msg:"tokenString..."}</returns>
  9. [HttpGet, Require("un", true, RegexConst.Mobile), Require("pwd")]
  10. [HttpPost]
  11. public void GetToken(string un, string pwd)
  12. {
  13. //is required. is invalid. 判断 是否:中文
  14. //CheckFormat("{0}不能为空&{0}格式错误", @"un&用户名&^1[3|4|5|8][0-9]\d{8}$", @"pwd&密码&^[\u0391-\uFFE5]+$");
  15. //string userName = Query<string>("un");
  16. //string pwd = Query<string>("pwd");
  17. if (!string.IsNullOrEmpty(un) && !string.IsNullOrEmpty(pwd))
  18. {
  19. byte[] data = System.Text.Encoding.UTF8.GetBytes("Taurus:" + un);
  20. string base64 = Convert.ToBase64String(data);
  21. Write(base64, true);
  22. }
  23. else
  24. {
  25. Write("UserName or Password Error", false);
  26. }
  27. }

  

其中:

  1. required 决定是否必填 true false(时可不写)
  1. type 决定显示的文本框类型 header(请求头) file(文件上传) 其它(时可不写)
  1. returns 显示返回的结果。
  2.  

3、运行测试结果

可修改请求路径、请求参数、请求类型。

点击执行运行结果:

系统会自动收集参数并执行,返回结果及请求头的内容。

2、附加<%# JS执行功能语法 %>

为了实现这个自动测试功能,顺路增加了该语法功能。

在/Views/Doc/detail.html 中,有这样一段html代码:

  1. <tbody id="ParaView" clearflag="1">
  2. <tr>
  3. <td width="80px">{0}</td>
  4. <td>{1}</td>
  5. <td>
  6. <%# ${required}?'是':'否'%>
  7. </td>
  8. <td><%# '${type}'=='file'?'文件':('${type}'=='header'?'请求头':'${type}')%></td>
  9. <td>
  10. <![CDATA[
  11. <input name="{0}" type="<%# '${type}'=='file'?'file':'text'%>" value="{4}" style="width:90%" rtype="${type}" <%# ${required}?'required="required"':'false'%> />
  12. ]]>
  13. </td>
  14.  
  15. </tr>
  16. </tbody>

其中 ${索引或属性名} 是之前就有的绑定语法。

为了方便html中对于简单的判断的文字变更,思考之后,把<%# 这里的内容都会被JS引擎执行 %>语法块功能给加上了。

细节说明:

由于模板是xhtml语法要求,对于不符合xml语法的地方,可以用

  1. <![CDATA[ ...]]> 包含起来。

结束说明:

1、本次版本更新主要就是以上两点功能。

2、由于net core 下支持 <%# %>语法,引用了Microsoft.ClearScript.dll(这个最低支持是3.1),所以netcore的默认版本调高到3.1。

Taurus.MVC 2.3.2 :WebAPI 文档集成测试功能及附加<%# JS执行功能语法 %>的更多相关文章

  1. Taurus.MVC 2.3.4 :WebAPI 文档集成测试功能升级:WebAPI批量自动化测试功能。

    前言: 最近升级了一下Taurus.MVC,现在最新版本是:Taurus.MVC 2.3.4,源码版本和nuget同步. 下面分三个步骤介绍下新版本的WebAPI批量自动化测试功能. 1.启用WebA ...

  2. Taurus.MVC 2.3 开源发布:增强属性Require验证功能,自带WebAPI文档生成功能

    背景: 上周,把 Taurus.MVC 在 Linux (CentOS7) 上部署任务完成后. 也不知怎么的,忽然就想给框架集成一下WebAPI文档功能,所以就动手了. 以为一天能搞完,结果,好几天过 ...

  3. Taurus.MVC WebAPI 入门开发教程8:WebAPI文档与自动化测试。

    系列目录 1.Taurus.MVC WebAPI  入门开发教程1:框架下载环境配置与运行. 2.Taurus.MVC WebAPI 入门开发教程2:添加控制器输出Hello World. 3.Tau ...

  4. webapi文档

    webapi文档描述-swagger 最近做的项目使用mvc+webapi,采取前后端分离的方式,后台提供API接口给前端开发人员.这个过程中遇到一个问题后台开发人员怎么提供接口说明文档给前端开发人员 ...

  5. ASP.NET WebApi 文档Swagger深度优化

    本文版权归博客园和作者吴双本人共同所有,转载和爬虫请注明博客园蜗牛原文地址,cnblogs.com/tdws   写在前面 请原谅我这个标题党,写到了第100篇随笔,说是深度优化,其实也并没有什么深度 ...

  6. ASP.NET WebApi 文档Swagger中度优化

    本文版权归博客园和作者吴双本人共同所有,转载和爬虫请注明原文地址:www.cnblogs.com/tdws   写在前面 在后台接口开发中,接口文档是必不可少的.在复杂的业务当中和多人对接的情况下,简 ...

  7. Webapi文档描述-swagger优化

    一.前言 最近做的项目使用WebApi,采取前后端分离的方式,后台提供API接口给前端开发人员.这个过程中遇到一个问题后台开发人员怎么提供接口说明文档给前端开发人员,最初打算使用word.Xmind思 ...

  8. 使用Swagger 搭建高可读性ASP.Net WebApi文档

    一.前言 在最近一个商城项目中,使用WebApi搭建API项目.但开发过程中,前后端工程师对于沟通接口的使用,是非常耗时的.之前也有用过Swagger构建WebApi文档,但是API文档的可读性并不高 ...

  9. WebApi 文档Swagger

    NET WebApi 文档Swagger中度优化   本文版权归博客园和作者吴双本人共同所有,转载和爬虫请注明原文地址:www.cnblogs.com/tdws   写在前面 在后台接口开发中,接口文 ...

随机推荐

  1. Java相同id的数据集合,合并数据为一条,并将几个字段内容合并为一个

    Java实现,当然也可以数据库实现; /** * Created by shaozhiqi on 2019/7/31. */ public class TestUnion { @Test public ...

  2. Thinking in Java,Fourth Edition(Java 编程思想,第四版)学习笔记(一)之Introduction

    Learn Java I found out that I and other speakers tended to give the typical audience too many topics ...

  3. go开发包下载,IDE工具下载,基础配置命令

    目录 go语言介绍 go开发包下载 命令介绍 配置 修改配置 golandIDE工具下载 编译并执行命令 命令 go语言介绍 # 1 诞生于 2009年,10年的时间,非常新的语言,天然支持并发,很新 ...

  4. IP连接数据库语句

    select  *  from [19.200.108.2].[jsoctnetv6.0].[CardInfo] where ICNO='32719'

  5. Java数组模拟环形队列

    2.环形队列 (上一篇队列:https://www.cnblogs.com/yxm2020/p/12676323.html) 百度百科 1.假溢出 ​ 系统作为队列用的存储区还没有满,但队列却发生了溢 ...

  6. Go gRPC进阶-proto数据验证(九)

    前言 上篇介绍了go-grpc-middleware的grpc_zap.grpc_auth和grpc_recovery使用,本篇将介绍grpc_validator,它可以对gRPC数据的输入和输出进行 ...

  7. 3. css百度制作字体图片

    http://fontstore.baidu.com/static/editor/index.html?qq-pf-to=pcqq.group

  8. Web前端三大主流框架是什么?Web前端前景与就业形势

    近十年以来,IT行业发展火热,衍生了很多新职业,例如UI设计师.开发工程师.软件测试工程师等等,在众多备受瞩目的新生职业中,Web前端工程师是其中的一员.那么Web前端三大主流框架是什么呢? 一.We ...

  9. CountDownLatch/CyclicBarrier/Semaphore

    CountDownLatch 概念 让一些线程阻塞直到另一些线程完成一系列操作才被唤醒 CountDownLatch主要有两个方法,当一个或多个线程调用await方法时,调用线程就会被阻塞.其它线程调 ...

  10. centos7下端口映射

    firewall-cmd --zone=external --add-forward-port=port=:proto=tcp:toport=:toaddr=192.168.10.10 --perma ...