用Swashbuckle给ASP.NET Core的项目自动生成Swagger的API帮助文档
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.SwaggerGen
和Swashbuckle.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帮助文档相关推荐
- .NET Core使用swagger进行API接口文档管理
一.问题背景 随着技术的发展,现在的开发模式已经更多的转向了前后端分离的模式,在前后端开发的过程中,联系的方式也变成了API接口,但是目前项目中对于API的管理很多时候还是通过手工编写文档,每次的需求 ...
- ASP.NET Core分布式项目实战(集成ASP.NETCore Identity)--学习笔记
任务24:集成ASP.NETCore Identity 之前在 Index 页面写了一个 strong 标签,需要加个判断再显示,不然为空没有错误的时候也会显示 @if (!ViewContext.M ...
- ASP.NET Core分布式项目实战(Consent 确认逻辑实现)--学习笔记
任务22:Consent 确认逻辑实现 接下来,我们会在上一节的基础上添加两个按钮,同意和不同意,点击之后会把请求 post 到 ConsentController 处理,如果同意会通过 return ...
- ASP.NET Core分布式项目实战(运行Consent Page)--学习笔记
任务21:运行Consent Page 修改 Config.cs 中的 RequireConsent 为 true,这样登录的时候就会跳转到 Consent 页面 修改 ConsentControll ...
- ASP.NET Core分布式项目实战(Consent Controller Get请求逻辑实现)--学习笔记
任务20:Consent Controller Get请求逻辑实现 接着上一节的思路,实现一下 ConsentController 根据流程图在构造函数注入 IClientStore,IResourc ...
- ASP.NET Core分布式项目实战(oauth2 + oidc 实现 client部分)--学习笔记
任务16:oauth2 + oidc 实现 client部分 实现 client 之前启动一下上一节的 server,启动之前需要清除一些代码 注释 Program 的 MigrateDbContex ...
- ASP.NET Core分布式项目实战(oauth2 + oidc 实现 server部分)--学习笔记
任务15:oauth2 + oidc 实现 server部分 基于之前快速入门的项目(MvcCookieAuthSample): ASP.NET Core快速入门(第5章:认证与授权)--学习笔记 A ...
- ASP.NET Core分布式项目实战(详解oauth2授权码流程)--学习笔记
最近公司产品上线,通宵加班了一个月,一直没有更新,今天开始恢复,每日一更,冲冲冲 任务13:详解oauth2授权码流程 我们即将开发的产品有一个用户 API,一个项目服务 API,每个服务都需要认证授 ...
- ASP.NET Core分布式项目实战(第三方ClientCredential模式调用)--学习笔记
任务10:第三方ClientCredential模式调用 创建一个控制台程序 dotnet new console --name ThirdPartyDemo 添加 Nuget 包:IdentityM ...
最新文章
- 俄媒:美国“龙-2”型飞船载人发射推迟至7月
- windows快捷键,photoshop快捷键,qq快捷键
- mysql 获取子分类_MySQL 自定义函数获取一个分类的无限级子分类
- 《Linux内核原理与分析》第六周作业
- mysql数据库with ur_Python使用MySQL数据库(新)
- leetcode371. 两整数之和 不用+号做加法
- python比java难吗-Python 的开发效率真的比 Java高吗?
- oracle数据库通过SQL profile 绑定SQL最优执行计划(个人实践)
- Linux下的虚拟机拷贝与快照生成
- android实现Materia Design风格APP(一):开篇
- Linux镜像源 国内镜像列表
- windows版本redis搭建集群步骤
- 怎么把两个pdf合并成一个?
- 推荐一大波让你直呼哇塞的Canvas库
- SprngBoot引用外部jar包和本身日志接口冲突问题解决办法
- element-ui中的表格组件实现隔行换色
- linux安装teamviewer黑屏,如何在CentOS 7上安装TeamViewer
- X Normal使用方法
- python中iloc与loc的区别
- JAVA-SUST实验二 JavaBean组件程序设计