关于swagger

设计是API开发的基础。Swagger使API设计变得轻而易举,为开发人员、架构师和产品所有者提供了易于使用的工具。

官方网址:https://swagger.io/solutions/api-design/

在没有接触Swagger之前,使用Web Api的时候,我们都是使用word文档提供接口说明的,比较尬,使用文档不方便的地方太多了,比如,当时使用的时候是可以马上找到的,但是时间久了,你就不记得了,找不到了,比如,调试的时候,出现问题,你就不知道到底是使用方的问题,还是提供方的问题,测试的时候不方便,当然,可以使用Postman来模拟请求,但是需要提供JSON数据的时候还是很不方便的,需要自己构造数据等等。接触到Swagger后,这些问题迎刃而解,下面一起学习一下在Asp.Net Web Api中怎么使用Swagger。

一、新建Web Api解决方案,新建ContactController

public class ContactController : ApiController, IResourceService<Contact>
{
static List<Contact> contacts;
static int counter = ;
static ContactController()
{
contacts = new List<Contact>();
contacts.Add(new Contact
{
Id = ,
Name = "dengwei",
PhoneNo = "",
EmailAddress = "dengwei@outlook.com",
Address = "深圳市福田区"
});
contacts.Add(new Contact
{
Id = ,
Name = "lisi",
PhoneNo = "",
EmailAddress = "lisi@qq.com",
Address = "深圳市南山区"
});
}
/// <summary>
/// 根据Id获取contact对象
/// </summary>
/// <param name="id">id</param>
/// <returns>返回继承自IEnumerable的对象</returns>
public JsonResult<Contact> Get(int id)
{
var contact = contacts.Where(x => x.Id == id).FirstOrDefault();
return Json<Contact>(contact);
}
/// <summary>
/// 新增contact对象
/// </summary>
/// <param name="model">contact对象</param>
public JsonResult<ResultData> Post(Contact model)
{
Interlocked.Increment(ref counter);
model.Id = counter;
contacts.Add(model);
return Json<ResultData>(new ResultData { Code = , Message = "success" });
}
/// <summary>
/// 修改contact对象
/// </summary>
/// <param name="model">contact对象</param>
public JsonResult<ResultData> Put(Contact model)
{
contacts.Remove(contacts.First(x => x.Id == model.Id));
contacts.Add(model);
return Json<ResultData>(new ResultData { Code = , Message = "success" });
}
/// <summary>
/// 根据Id删除contact对象
/// </summary>
/// <param name="id">Id</param>
public JsonResult<ResultData> Delete(int id)
{
contacts.Remove(contacts.First(x => x.Id == id));
return Json<ResultData>(new ResultData { Code = , Message = "success" });
}
}

我们可以看到,这个控制器类继承自IResourceService的接口,这个接口中一共四个方法:Get,Post,Put,Delete,说到这里不得不提一下RESTful 架构,我个人的理解就是对资源的增删查改,所以我也只写了四个方法:

Get:查询
Post:新增
Put:修改
Delete:删除

public interface IResourceService<T> where T : class
{
JsonResult<T> Get(int id);
JsonResult<ResultData> Post(T model);
JsonResult<ResultData> Put(T model);
JsonResult<ResultData> Delete(int id);
}

相关实体类:

public class ResultData
{
/// <summary>
/// 返回码 0 表示成功 其余表示失败
/// </summary>
public int Code { get; set; }
/// <summary>
/// 状态描述
/// </summary>
public string Message { get; set; }
}
public class Contact
{
/// <summary>
/// ID
/// </summary>
public int Id { get; set; }
/// <summary>
/// 姓名
/// </summary>
public string Name { get; set; }
/// <summary>
/// 电话
/// </summary>
public string PhoneNo { get; set; }
/// <summary>
/// 邮箱
/// </summary>
public string EmailAddress { get; set; }
/// <summary>
/// 地址
/// </summary>
public string Address { get; set; }
}

Api接口写完之后,修改解决方案输出xml文档

然后通过NuGet安装Swagger

装完成之后,修改SwaggerConfig中的xml路径为你刚才修改的解决方案的xml输出路径。
c.IncludeXmlComments(string.Format("{0}/bin/ReallyWantToApi.XML",System.AppDomain.CurrentDomain.BaseDirectory));

运行,在地址后面出入swagger回车,Api在线文档出来了,就是这么简单。如果你的Api在线文档运行的时候有异常,那么,可以肯定你的Api接口定义是不符合规范的。

下面来测试一下,接口是否可用:测试Get,返回成功了,完美。

测试POST,非常的爽,旁边已经提供了相关的JSON模板,点击一下,然后修改你需要的Value,Try it Out

Asp.Net Web Api中使用Swagger的更多相关文章

  1. ASP.NET Web API 中使用 swagger 来管理 API 文档

    本文以 ASP.NET Web API 为后台框架,利用 EF6 连接 postgreSQL 数据库,使用 swagger 来生成 REST APIs文档.文章分二个部分,第一部分主要讲如何用 EF6 ...

  2. ASP.NET Core Web API中使用Swagger

    本节导航 Swagger介绍 在ASP.NET CORE 中的使用swagger   在软件开发中,管理和测试API是一件重要而富有挑战性的工作.在我之前的文章<研发团队,请管好你的API文档& ...

  3. ASP.NET Web API中的Controller

    虽然通过Visual Studio向导在ASP.NET Web API项目中创建的 Controller类型默认派生与抽象类型ApiController,但是ASP.NET Web API框架本身只要 ...

  4. 在ASP.NET Web API中使用OData

    http://www.alixixi.com/program/a/2015063094986.shtml 一.什么是ODataOData是一个开放的数据协议(Open Data Protocol)在A ...

  5. ASP.NET Web API 中的异常处理(转载)

    转载地址:ASP.NET Web API 中的异常处理

  6. 【ASP.NET Web API教程】6.2 ASP.NET Web API中的JSON和XML序列化

    谨以此文感谢关注此系列文章的园友!前段时间本以为此系列文章已没多少人关注,而不打算继续下去了.因为文章贴出来之后,看的人似乎不多,也很少有人对这些文章发表评论,而且几乎无人给予“推荐”.但前几天有人询 ...

  7. Asp.Net Web API 2第十三课——ASP.NET Web API中的JSON和XML序列化

    前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html 本文描述ASP.NET W ...

  8. ASP.NET WEB API 中的路由调试与执行过程跟踪

    路由调试 RouteDebugger 是调试 ASP.NET MVC 路由的一个好的工具,在ASP.NET WEB API中相应的有 WebApiRouteDebugger ,Nuget安装 Inst ...

  9. 能省则省:在ASP.NET Web API中通过HTTP Headers返回数据

    对于一些返回数据非常简单的 Web API,比如我们今天遇到的“返回指定用户的未读站内短消息数”,返回数据就是一个数字,如果通过 http response body 返回数据,显得有些奢侈.何不直接 ...

随机推荐

  1. IE8兼容background-size

    filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/web/images/bg.png',sizingMethod='sca ...

  2. mysql增加远程连接用户及查看数据库表结构

    一.增加远程连接用户 1.用root权限登录数据库  2.加用户:grant all privileges on *.* to '111'@'192.168.1.%' identified by '2 ...

  3. ios 8 联系人ABPeoplePickerNavigationController

    一. ios 联系人ABPeoplePickerNavigationControllerDelegate方法,新添加下面两个联系人选中方法,适配iOS8需要实现 // Called after a p ...

  4. 数字三角形 · Triangle

    从上到下用DP. [抄题]: 给定一个数字三角形,找到从顶部到底部的最小路径和.每一步可以移动到下面一行的相邻数字上. 比如,给出下列数字三角形: [ [2], [3,4], [6,5,7], [4, ...

  5. JS验证登录平台

    function IsPC() { var userAgentInfo = navigator.userAgent; var Agents = new Array("Android" ...

  6. 三、oracle 用户管理一

    三.oracle 用户管理一 一.创建用户概述:在oracle中要创建一个新的用户使用create user语句,一般是具有dba(数据库管理员)的权限才能使用.create user 用户名 ide ...

  7. oracle去重试验

    http://blog.csdn.net/lunajiao/article/details/76014488

  8. ejb 和pojo , jboss 和 tomcat

    EJB(企业JavaBeans)是普通JavaBeans的一种提升和规范,因为企业信息系统开发中需要一个可伸缩的性能和事务.安全机制,这样能保证企业系统平滑发展,而不是发展到一种规模重新更换一套软件系 ...

  9. Python 版本之 Anaconda

    https://www.anaconda.com/download/#linux Anaconda概述 Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windo ...

  10. 2018.10.14 bzoj1915: 奶牛的跳格子游戏(单调队列优化dp)

    传送门 NOIP练习题. f[i]f[i]f[i]表示去的时候选了iii且回来的时候第一步走的是i−1i-1i−1的最优值. 显然f[i]=maxf[i]=maxf[i]=max{f[j]−sum[j ...