.NetCore WebApi——Swagger简单配置
在前后端分离的大环境下,API接口文档成为了前后端交流的一个重点。Swagger让开发人员摆脱了写接口文档的痛苦。
官方网址:https://swagger.io/
在.Net Core WebApi中通过简单配置即可使用这一强大的功能。
目录:
.NetCore WebApi——基于JWT的简单身份认证与授权(Swagger)
.NetCore WebApi —— Swagger版本控制
1.新建一个API的项目
选择 API 项目
2.引入Swagger包。.Net Core 中支持两个分别为Swashbuckle和NSwag。两者的配置大同小异。这里以Swashbuckle为例。
方式1:选择工具——Nuget包管理——管理解决方案的Nuget包
搜索:Swashbuckle.AspNetCore 安装即可
方式2:直接在程序包管理控制台输入:Install-Package Swashbuckle.AspNetCore 回车即可安装
安装之后在项目的Nuget包中就可以看到了
3.配置Swagger中间件
3.1 在Startup类ConfigureServices方法中添加Swagger服务并配置文档信息
- public void ConfigureServices(IServiceCollection services)
- {
- // 注册Swagger服务
- services.AddSwaggerGen(c =>
- {
- // 添加文档信息
- c.SwaggerDoc("v1", new Info { Title = "CoreWebApi", Version = "v1" });
- });
- services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
- }
3.2 在 Startup类Configure
方法中,启用中间件为生成的 JSON 文档和 Swagger UI 提供服务
- public void Configure(IApplicationBuilder app, IHostingEnvironment env)
- {
- if (env.IsDevelopment())
- {
- app.UseDeveloperExceptionPage();
- }
- else
- {
- // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
- app.UseHsts();
- }
- app.UseHttpsRedirection();
- // 启用Swagger中间件
- app.UseSwagger();
- // 配置SwaggerUI
- app.UseSwaggerUI(c =>
- {
- c.SwaggerEndpoint("/swagger/v1/swagger.json", "CoreWebApi");
- });
- app.UseMvc();
- }
右键项目属性,将URL地址固定到某个端口
然后将启动项设置为当前项目,然后启动。
在根目录目前是没有东西的。下一步将在根目录处使用SwaggerUI
将RoutePrefix属性设置为空
- app.UseHttpsRedirection();
- // 启用Swagger中间件
- app.UseSwagger();
- // 配置SwaggerUI
- app.UseSwaggerUI(c =>
- {
- c.SwaggerEndpoint("/swagger/v1/swagger.json", "CoreWebApi");
- c.RoutePrefix = string.Empty;
- });
再次启动项目,SwaggerUI文档成功显示出来。整体简洁大方。
API的信息说明:传递给AddSwaggerGen()的方法可配置一些API的信息说明以及作者信息等,来展示到UI页面。修改AddSwaggerGen()方法。
- // 注册Swagger服务
- services.AddSwaggerGen(c =>
- {
- // 添加文档信息
- c.SwaggerDoc("v1", new Info
- {
- Title = "CoreWebApi",
- Version = "v1",
- Description="ASP.NET CORE WebApi",
- Contact=new Contact
- {
- Name="Jee",
- Email="princess@gmail.com"
- }
- });
- });
展示对应的信息
4.启用XML注释。上边的效果只有一个简单说明,并没有我们在后台写的注释。启用XML注释之后可以轻松映射到UI界面方便前端开发人员理解。
右键当前项目——编辑****.csproj 的文件 在PropertyGroup标签组中添加如下两条
<GenerateDocumentationFile>true</GenerateDocumentationFile> <NoWarn>$(NoWarn);1591</NoWarn>
这两句的大概意思就是启用XML注释,并忽略未写注释的警告。不添加1591如果某个方法未写 "///"各式的注释,vs会有警示的消息。
之后AddSwaggerGen()方法中读取xml文件路径并启用
- // 注册Swagger服务
- services.AddSwaggerGen(c =>
- {
- // 添加文档信息
- c.SwaggerDoc("v1", new Info
- {
- Title = "CoreWebApi",
- Version = "v1",
- Description="ASP.NET CORE WebApi",
- Contact=new Contact
- {
- Name="Jee",
- Email="princess@gmail.com"
- }
- });
- // 使用反射获取xml文件。并构造出文件的路径
- var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
- var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
- // 启用xml注释. 该方法第二个参数启用控制器的注释,默认为false.
- c.IncludeXmlComments(xmlPath,true);
- });
再次启动项目,可以看到写的注释全部都映射出来了
Text类的返回值也可以映射出来
Models文件夹中的实体也可以映射在接口下方
总结: 在.net core中配置swagger非常之快速。但这也是堪堪达到可以用的程度,算是入门级别吧。
源码:GitHub
https://github.com/xiaoMaPrincess/Asp.NetCore-WebApi
多层架构版本:
https://github.com/xiaoMaPrincess/.NetCoreWebApi
.NetCore WebApi——Swagger简单配置的更多相关文章
- .NetCore WebApi —— Swagger版本控制
目录: .NetCore WebApi——Swagger简单配置 .NetCore WebApi——基于JWT的简单身份认证与授权(Swagger) .NetCore WebApi —— Swagge ...
- swagger简单配置
第一步: 在nuget.org中查找Swashbuckle并下载 在nuget.org中查找Swagger.net.UI,并下载 第二步: 下载完之后,App_Start多了三个文件 Swagger. ...
- .NetCore WebApi——基于JWT的简单身份认证与授权(Swagger)
上接:.NetCore WebApi——Swagger简单配置 任何项目都有权限这一关键部分.比如我们有许多接口.有的接口允许任何人访问,另有一些接口需要认证身份之后才可以访问:以保证重要数据不会泄露 ...
- Asp.NetCore WebApi 引入Swagger
一.创建一个Asp.NetCore WebApi 项目 二.引入NuGet包 SwashBuckle.AspNetCore 三.在项目属性配置中设置 四.修改项目的启动文件Startup.cs 1). ...
- swagger-ui 系统配置过程(基于spring+springmvc+swagger+springfox配置 web-api 管理系统)
web工程部分框架信息:spring springmvc swagger springfox maven 参考文档:https://www.cnblogs.com/exmyth/p/7183753.h ...
- netcore webapi帮助文档设置
如何建 .netcore webapi 项目这个就不说了,这个都没有没必要看下去. 我这里是.netcore 2.0,虽然没测过1.0的,但想来差不多. 1.Nuget Packages安装,使用程序 ...
- NetCore WebApi使用Jwtbearer实现认证和授权
1. 什么是JWT? JWT是一种用于双方之间传递安全信息的简洁的.URL安全的表述性声明规范.JWT作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以Json对 ...
- JWT With NetCore WebApi
1 什么是JWT? JWT是一种用于双方之间传递安全信息的简洁的.URL安全的表述性声明规范.JWT作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以Json对象 ...
- WebApi Swagger 接口多版本控制 适用于APP接口管理
最近研究了下swagger多版本的维护,网上的文章千篇一律,无法满足我的需求,分享下我的使用场景以及实现 演示环境:Visual Studio 2019.Asp.NET WebAPI.NET Fram ...
随机推荐
- Spring Cloud authentication with JWT service
@RequestMapping(value = "/authenticate", method = RequestMethod.POST) public ResponseEntit ...
- 配置phpstorm自动上传代码
本地的项目目录是 D:\www\guandan 虚拟机上的项目目录是 /var/www/guandan
- Spring Cloud @HystrixCommand和@CacheResult注解使用,参数配置
使用Spring Cloud时绕不开Hystrix,他帮助微服务实现断路器功能.该框架的目标在于通过控制那些访问远程系统.服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力.Hystrix具备 ...
- Nginx多虚拟主机下泛域名配置
http://www.tuicool.com/articles/F3Azuq 近上一个应用,让用户可以自定义二级域名,所以要配置一个泛域名来解析用户的自定义域名. 首先来说说nginx下的泛域名配置 ...
- TestNG失败用例自动截图
参考:https://blog.csdn.net/wangxin1982314/article/details/50247245 1. 首先写一个截屏方法 public class ScreenSho ...
- 利用异或求(整数数组中,有2K+1个数,其中有2k个相同,找出不相同的那个数)
转自https://blog.csdn.net/renjie_998003/article/details/50738025 java的位运算符中有一个叫异或的运算符,用符号(^)表示,其运算规则是: ...
- 终于将 SQL Server 成功迁移至 MySQL8.0 啦!!!
之前一直使用 SQL Server 作为主数据库而不是 MySQL ,原因之一是单机 SQL Server 性能比 MySQL 强很多,另一个原因是之前客户的系统管理员大多只有 SQL Server ...
- copy.copy()与copy.deepcopy()的详解
copy.copy() 元组和列表调用这个方法效果也不一样. 元组的效果: a = [1,2,3] b = [4,5,6] c = (a,b) e = copy.copy(c) 可以看到:e和c是指向 ...
- USACO JAN14 奶牛冰壶运动 凸包+判定
满足条件的一定是在凸包内的,直接判断 恬不知耻的加了特判,2333 #include<cstdio> #include<iostream> #include<cstrin ...
- MYSQL一键安装
#!/bin/bash #baishuchao qq:995345781 ############################################################### ...