开发工具:VS2017 版本15.7.1

新建项目,选择空模板,下面只勾选WebAPI

配置Web.config

<system.webServer> 节点改为

  <system.webServer>
    <handlers>
      <remove name="OPTIONSVerbHandler" />
      <remove name="TRACEVerbHandler" />
    </handlers>
    <validation validateIntegratedModeConfiguration="false" />
    <!-- 兼容IIS版本 -->
    <modules runAllManagedModulesForAllRequests="true">
      <remove name="WebDAVModule" />
    </modules>
    <!-- 正式环境,不需要配置跨域 -->
    <httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
        <add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept, Authorization" />
        <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
      </customHeaders>
    </httpProtocol>
  </system.webServer>

<runtime>节点中,删除已经去除的依赖包

加入Swagger。打开NuGet,找到 Swashbuckle 并安装

 

修改 SwaggerConfig.cs

接口文档是根据项目的xml结构文件生成的,首先要开启该功能

在配置SwaggerConfig.cs 中,设置对应的xml路径。如果有多个,则依次配置(比如有多个模型类库)。

开启验证,这里是简单的请求头模式

写一个测试接口,注意使用 ResponseType,才会显示响应的参数

    public class TestController : ApiController
    {
        /// <summary>
        /// 测试接口
        /// </summary>
        [Route("api/name")]
        [HttpGet]
        [ResponseType(typeof(MyResp))]
        public IHttpActionResult GetName([FromUri]MyReq req)
        {
            var resp = new MyResp();
            resp.name = req.name;
            return Ok(resp);
        }
    }

    /// <summary>
    /// 测试请求
    /// </summary>
    public class MyReq
    {
        /// <summary>
        /// 输入姓名
        /// </summary>
        public string name { get; set; }
    }

    /// <summary>
    /// 测试响应
    /// </summary>
    public class MyResp
    {
        /// <summary>
        /// 输出姓名
        /// </summary>
        public string name { get; set; }
    }

来看下最后的效果

最新文章

  1. 【NLP】揭秘马尔可夫模型神秘面纱系列文章(三)
  2. HTML---用记事本写html
  3. TestNG 入门教程
  4. Linux简介及常用命令使用4--linux高级命令与技巧
  5. 【转载】CentOS服务器配置VPN详解
  6. Allegro16.3约束设置 (转载)
  7. OpenJudge 2809 计算2的N次方
  8. SQL SERVER 作业(或叫执行计划)
  9. capitalize()在Python中含义
  10. DBI接口和DPI接口的区别
  11. 转:窗口启用/禁用功能函数EnableWindow的使用
  12. js判断字符串中的英文和汉字
  13. java URLEncoder 和Base64.encode()
  14. 201621123031 《Java程序设计》第10周学习总结
  15. HibernateTemplate 查询原生sql及ljava.lang.object cannot be cast to
  16. Python 中关于Random的使用方法
  17. python 基础之python的六大标准数据类型
  18. Telegraf安装与介绍
  19. jquery cdn bootstrap静态资源库问题
  20. Docker 系列01: Centos7.3 上安装docker

热门文章

  1. 从原理上搞定编码(二)-- Web编码
  2. 常州day1p4
  3. 【BZOJ4455】小星星(动态规划,容斥)
  4. 【NOIP2017】列队(Splay)
  5. 【省选水题集Day1】一起来AK水题吧! 题解(更新到B)
  6. 【loj6059】Sum
  7. 【hdu6051】If the starlight never fade
  8. 实现了一下Berlekamp-Massey
  9. python基础----再看property、描述符(__get__,__set__,__delete__)
  10. 【DP】【P5007】 DDOSvoid 的疑惑