Swagger是一个描述RESTful的Web API的规范和框架。如果使用ASP.NET的话,可以用Swashbuckle来自动生成Swagger,具体参考如何使 WebAPI 自动生成漂亮又实用在线API文档。下面详细的介绍一下如何给ASP.NET Core的项目自动生成Swagger的API帮助文档。

创建ASP.NET Core的Web API Controller

在Visual Studio 2015中创建一个ASP.NET Core的项目,点击添加“New Item”,“Server-side”,“Web API Controller Class”。Visual Studio会帮我们自动创建一个如下的文件,实现了一个标准的RESTful的Web API。

1234567891011121314151617181920212223242526272829303132333435
[Route("api/[controller]")]public class ValuesController : Controller{    // GET: api/values    [HttpGet]    public IEnumerable<string> Get()    {        return new string[] { "value1", "value2" };    }

    // GET api/values/5    [HttpGet("{id}")]    public string Get(int id)    {        return "value";    }

    // POST api/values    [HttpPost]    public void Post([FromBody]string value)    {    }

    // PUT api/values/5    [HttpPut("{id}")]    public void Put(int id, [FromBody]string value)    {    }

    // DELETE api/values/5    [HttpDelete("{id}")]    public void Delete(int id)    {    }}

添加Swashbuckle的Nuget包

打开project.json文件,添加Swashbuckle的依赖Swashbuckle.SwaggerGenSwashbuckle.SwaggerUi。注意我们要使用6.0的版本,这是针对ASP.NET Core的。它的github地址Ahoy也和之前的版本不一样了。

12345678910
"dependencies": {  "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",  "Microsoft.AspNet.Mvc": "6.0.0-rc1-final",  "Microsoft.AspNet.Mvc.Core": "6.0.0-rc1-final",  "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",  "Microsoft.AspNet.SignalR.Server": "3.0.0-rc1-final",  "Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final",  "Swashbuckle.SwaggerGen": "6.0.0-rc1-final",  "Swashbuckle.SwaggerUi": "6.0.0-rc1-final"},

Startup.cs中配置Swashbuckle

1234567891011121314
public void ConfigureServices(IServiceCollection services){    // ...    services.AddSwaggerGen();    // ...}

public void Configure(IApplicationBuilder app){    // ...    app.UseSwaggerGen();    app.UseSwaggerUi("help"); // API文档的地址,默认是 /swagger/ui    // ...}

运行项目,查看API文档,也能直接测试

万事俱备,运行项目,打开地址,就能看到如下的API文档了,还能直接在这里测试Web API。

相关文章:

  • WebAPI前置知识:HTTP与RestfulAPI

  • WEB API系列(一):WEB API的适用场景、第一个实例

  • WEB API 系列(二) Filter的使用以及执行顺序

  • ASP.NET Web API 安全筛选器

  • Web API 基于ASP.NET Identity的Basic Authentication

  • ASP.NET Web Api使用CacheCow和ETag缓存资源

  • 使用 West Wind WebSurge 对 ASP.NET Web API 服务进行压力测试

  • Web API应用支持HTTPS的经验总结

  • Dion Hinchcliffe谈Web API的过去与未来

  • WebAPI生成可导入到PostMan的数据

  • 如何使 WebAPI 自动生成漂亮又实用在线API文档

原文地址:http://fresky.github.io/2016/06/08/use-swashbuckle-to-add-swagger-api-help-for-asp-net-core/


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

用Swashbuckle给ASP.NET Core的项目自动生成Swagger的API帮助文档相关推荐

  1. .NET Core使用swagger进行API接口文档管理

    一.问题背景 随着技术的发展,现在的开发模式已经更多的转向了前后端分离的模式,在前后端开发的过程中,联系的方式也变成了API接口,但是目前项目中对于API的管理很多时候还是通过手工编写文档,每次的需求 ...

  2. ASP.NET Core分布式项目实战(集成ASP.NETCore Identity)--学习笔记

    任务24:集成ASP.NETCore Identity 之前在 Index 页面写了一个 strong 标签,需要加个判断再显示,不然为空没有错误的时候也会显示 @if (!ViewContext.M ...

  3. ASP.NET Core分布式项目实战(Consent 确认逻辑实现)--学习笔记

    任务22:Consent 确认逻辑实现 接下来,我们会在上一节的基础上添加两个按钮,同意和不同意,点击之后会把请求 post 到 ConsentController 处理,如果同意会通过 return ...

  4. ASP.NET Core分布式项目实战(运行Consent Page)--学习笔记

    任务21:运行Consent Page 修改 Config.cs 中的 RequireConsent 为 true,这样登录的时候就会跳转到 Consent 页面 修改 ConsentControll ...

  5. ASP.NET Core分布式项目实战(Consent Controller Get请求逻辑实现)--学习笔记

    任务20:Consent Controller Get请求逻辑实现 接着上一节的思路,实现一下 ConsentController 根据流程图在构造函数注入 IClientStore,IResourc ...

  6. ASP.NET Core分布式项目实战(oauth2 + oidc 实现 client部分)--学习笔记

    任务16:oauth2 + oidc 实现 client部分 实现 client 之前启动一下上一节的 server,启动之前需要清除一些代码 注释 Program 的 MigrateDbContex ...

  7. ASP.NET Core分布式项目实战(oauth2 + oidc 实现 server部分)--学习笔记

    任务15:oauth2 + oidc 实现 server部分 基于之前快速入门的项目(MvcCookieAuthSample): ASP.NET Core快速入门(第5章:认证与授权)--学习笔记 A ...

  8. ASP.NET Core分布式项目实战(详解oauth2授权码流程)--学习笔记

    最近公司产品上线,通宵加班了一个月,一直没有更新,今天开始恢复,每日一更,冲冲冲 任务13:详解oauth2授权码流程 我们即将开发的产品有一个用户 API,一个项目服务 API,每个服务都需要认证授 ...

  9. ASP.NET Core分布式项目实战(第三方ClientCredential模式调用)--学习笔记

    任务10:第三方ClientCredential模式调用 创建一个控制台程序 dotnet new console --name ThirdPartyDemo 添加 Nuget 包:IdentityM ...

最新文章

  1. 俄媒:美国“龙-2”型飞船载人发射推迟至7月
  2. windows快捷键,photoshop快捷键,qq快捷键
  3. mysql 获取子分类_MySQL 自定义函数获取一个分类的无限级子分类
  4. 《Linux内核原理与分析》第六周作业
  5. mysql数据库with ur_Python使用MySQL数据库(新)
  6. leetcode371. 两整数之和 不用+号做加法
  7. python比java难吗-Python 的开发效率真的比 Java高吗?
  8. oracle数据库通过SQL profile 绑定SQL最优执行计划(个人实践)
  9. Linux下的虚拟机拷贝与快照生成
  10. android实现Materia Design风格APP(一):开篇
  11. Linux镜像源 国内镜像列表
  12. windows版本redis搭建集群步骤
  13. 怎么把两个pdf合并成一个?
  14. 推荐一大波让你直呼哇塞的Canvas库
  15. SprngBoot引用外部jar包和本身日志接口冲突问题解决办法
  16. element-ui中的表格组件实现隔行换色
  17. linux安装teamviewer黑屏,如何在CentOS 7上安装TeamViewer
  18. X Normal使用方法
  19. python中iloc与loc的区别
  20. JAVA-SUST实验二 JavaBean组件程序设计

热门文章

  1. nat+端口转发,使得宿主机secureCRT可以访问vbox里linux虚拟机
  2. 基于HTML5手机上下滑动翻页特效
  3. oracle11g安装和基本的使用,手把手看图教你用起来。
  4. 使用C#为MSTest测试项目实现自定义断言
  5. 不止命令行!自定义VS生成事件
  6. 面试官: 平时开发中你用过读写锁吗?
  7. dotnet 通过引用 msbuild 程序集实现自己定制编译器
  8. NET问答: using 和 await using 有什么不同?
  9. IdentityServer4之持久化很顺手的事
  10. 起点低,是彪悍的最好证明!