web API .net - .net core 对比学习-使用Swagger
根据前两篇的介绍,我们知道.net web api 和 .net core web api在配置方面的不同如下:
1. .net web api的配置是在 App_Stat文件夹里面添加对应的配置类,然后在Global.asax.cs文件里面注册。
2. .net web api的配置是在Startup文件的Config和ConfigService方法里面添加注册。
对于swagger的配置,与上面的类似,我们来看一下如何在.net web api 和 .net core api项目中添加swagger.
1. 添加nuget包。
左边是.net core 需要使用的包:Swashbuckle.AspNetCore
右边是.net需要使用的包: Swashbuckle 和 Swashbuckle.Core
2. 配置使用swagger.
对于.net core web api项目我们在Startup中的ConfigService和Config方法中添加以下代码。下面的代码省去了添加MVC和路由的配置。
public void ConfigureServices(IServiceCollection services)
{
//添加swagger文档
services.AddSwaggerGen(
c => {
c.SwaggerDoc("v1", new Info
{
Title = "Test Api",
Version = "v1",
Description = "Swagger学习",
TermsOfService = "Note",
Contact = new Contact { Name = "Email", Email = "test@163.com", Url = "https://home.cnblogs.com/u/ZhangDamon" }
});
});
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseSwaggerUI(
c => {
c.SwaggerEndpoint("/swagger/v1/swagger.json", "Test Web API");
}); }
对于.net web api项目,当安装完nuget包之后,在App_Start文件夹中会自动生成SwaggerConfig.cs文件。我们删除里面的注释,保留以下代码。
using System.Web.Http;
using WebActivatorEx;
using FreWebApi;
using Swashbuckle.Application;
using Swashbuckle.Swagger;
using System.Collections.Generic;
using System.Web.Http.Description; [assembly: PreApplicationStartMethod(typeof(SwaggerConfig), "Register")] namespace FreWebApi
{
public class SwaggerConfig
{
public static void Register()
{
var thisAssembly = typeof(SwaggerConfig).Assembly; GlobalConfiguration.Configuration
.EnableSwagger(c =>
{
c.SingleApiVersion("v1", "FreWebApi");
c.IncludeXmlComments(GetXmlCommentsPath());
//c.OperationFilter<HttpHeaderFilter>(); })
.EnableSwaggerUi(c =>
{
c.InjectJavaScript(thisAssembly, "SwaggerDemo.Scripts.swaggerui.swagger_lang.js");
});
} private static string GetXmlCommentsPath()
{
return string.Format(@"{0}\bin\FreWebApi.xml", System.AppDomain.CurrentDomain.BaseDirectory);
}
}
}
这个时候我们打开运行然后浏览器中输入swagger地址,就可以看到swagger ui界面了。
根据前两篇的介绍,我们知道.net web api 和 .net core web api在配置方面的不同如下:
1. .net web api的配置是在 App_Stat文件夹里面添加对应的配置类,然后在Global.asax.cs文件里面注册。
2. .net web api的配置是在Startup文件的Config和ConfigService方法里面添加注册。
对于swagger的配置,与上面的类似,我们来看一下如何在.net web api 和 .net core api项目中添加swagger.
1. 添加nuget包。
左边是.net core 需要使用的包:Swashbuckle.AspNetCore
右边是.net需要使用的包: Swashbuckle 和 Swashbuckle.Core
2. 配置使用swagger.
对于.net core web api项目我们在Startup中的ConfigService和Config方法中添加以下代码。下面的代码省去了添加MVC和路由的配置。
{
services.AddSwaggerGen(
c => {
c.SwaggerDoc("v1", new Info
{
Title = "Test Api",
Version = "v1",
Description = "Swagger学习",
TermsOfService = "Note",
Contact = new Contact { Name = "Email", Email = "test@163.com", Url = "https://home.cnblogs.com/u/ZhangDamon" }
});
});
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseSwaggerUI(
c => {
c.SwaggerEndpoint("/swagger/v1/swagger.json", "Test Web API");
}); }
对于.net web api项目,当安装完nuget包之后,在App_Start文件夹中会自动生成SwaggerConfig.cs文件。我们删除里面的注释,保留以下代码。
using System.Web.Http;
using WebActivatorEx;
using FreWebApi;
using Swashbuckle.Application;
using Swashbuckle.Swagger;
using System.Collections.Generic;
using System.Web.Http.Description; [assembly: PreApplicationStartMethod(typeof(SwaggerConfig), "Register")] namespace FreWebApi
{
public class SwaggerConfig
{
public static void Register()
{
var thisAssembly = typeof(SwaggerConfig).Assembly; GlobalConfiguration.Configuration
.EnableSwagger(c =>
{
c.SingleApiVersion("v1", "FreWebApi");
c.IncludeXmlComments(GetXmlCommentsPath());
//c.OperationFilter<HttpHeaderFilter>(); })
.EnableSwaggerUi(c =>
{
c.InjectJavaScript(thisAssembly, "SwaggerDemo.Scripts.swaggerui.swagger_lang.js");
});
} private static string GetXmlCommentsPath()
{
return string.Format(@"{0}\bin\FreWebApi.xml", System.AppDomain.CurrentDomain.BaseDirectory);
}
}
}
这个时候我们打开运行然后浏览器中输入swagger地址,就可以看到swagger ui界面了。
下图是.net core web api的swagger页面。
下图是.net api生产的页面。
由上面的图我们可以看到两个swagger除了访问的url不同之外就是.net core的swagger多了一些标签。
这些都是由下面的代码生成的,至于对应关系大家可以自己研究一下。
有的同学可能觉得奇怪,为什么我们这次不需要在Global.asax.cs文件里面注册swagger的配置,我们回顾一下SwaggerConfig的代码,里面下面这有下面这个特性,它可以指定在web api 启动的时候自动注册swagger的配置。
[assembly: PreApplicationStartMethod(typeof(SwaggerConfig), "Register")]
3. 注释文档的配置
对于.net 和.net core 来说生产文档注释的配置基本类似,首先我们需要添加xml路径,右击项目->属性->生产,选择输出路径,一般情况下都会有个默认路径不需要修改。
第二步,如果是.net项目我们在SwaggerConfig类里面修改代码如下:
对于.net core项目我们按照以下方式修改代码:
这样我们再次打开swagger就可以看到我们的swagger页面已经可以显示我们添加到接口的注释了。同时如果我们的接口有实体参数也可以显示出来。
web API .net - .net core 对比学习-使用Swagger的更多相关文章
- web API .net - .net core 对比学习-依赖注入
今天我们来看一下 .net web api 和 .net core web api依赖注入机制的差异. 首先我们分别在.net web api 和 .net core web api新建文件夹Serv ...
- web API .net - .net core 对比学习-文件目录概述
个人正在学习.net web Api的相关知识,因此用这一系列博客做一记录. 1. 首先我们分别创建 .net web api 项目和 .net core web api 项目. 2. 我们首先比较一 ...
- Asp.Net Web API 2 官网菜鸟学习系列导航[持续更新中]
详情请查看http://aehyok.com/Blog/Detail/67.html 个人网站地址:aehyok.com QQ 技术群号:206058845,验证码为:aehyok 本文文章链接:ht ...
- Asp.Net Web API 2 官网菜鸟学习系列导航
链接地址: http://www.cnblogs.com/aehyok/p/3446289.html
- angular4和asp.net core 2 web api
angular4和asp.net core 2 web api 这是一篇学习笔记. angular 5 正式版都快出了, 不过主要是性能升级. 我认为angular 4还是很适合企业的, 就像.net ...
- [整理]ASP.NET WEB API 2学习
目录 1 快速入门 1.1实例 1.1.1初识WEB API 2 1.1.2 Action Results 的改变 1.1.3 路由的新增特性 1.1.4 消息管道的变化 1.1.4.1 HttpMe ...
- win 10+ iis 10 部署.net core 1.1 web api
今天上午部署了wcf,部署了好久,一直没有部署好,最后找到了dudu的部署方法,结果中午吃饭的时候成功了,这是链接:http://www.cnblogs.com/dudu/p/3328066.html ...
- Advanced Architecture for ASP.NET Core Web API
转自: https://www.infoq.com/articles/advanced-architecture-aspnet-core ASP.NET Core's new architecture ...
- 温故知新,使用ASP.NET Core创建Web API,永远第一次
ASP.NET Core简介 ASP.NET Core是一个跨平台的高性能开源框架,用于生成启用云且连接Internet的新式应用. 使用ASP.NET Core,您可以: 生成Web应用和服务.物联 ...
随机推荐
- Ubuntu 安装MySQL报共享库找不到
错误信息1: ./mysqld: error : cannot open shared object file: No such file or directory 解决办法:安装改库 # apt-g ...
- 搭建Portainer可视化界面
1.下载Portainer镜像 docker pull portainer/portainer 2.安装分为单机版及集群版 2.1单机版安装 docker run -d -p 9000:9000 \- ...
- UML的使用
软件工程项目这周要交一个设计文档,其中涉及UML图的画法,根据上课给的ppt做一个记录. 有关于UML的介绍在这里不再赘述,直接开整! UML的基本模型 当然必要的介绍必不可少,这里先介绍UML的基本 ...
- Oracle复习思路
目录 Oracle复习 题型 复习大纲 附录 SQL题目一 SQL题目二 SQL题目三 SQL题目四 SQL题目五 SQL题目六 Oracle复习 题型 选择题15题 每题2分,共30分 判断题10题 ...
- TCP Keepalive笔记
TCP是无感知的虚拟连接,中间断开两端不会立刻得到通知.一般在使用长连接的环境下,需要心跳保活机制可以勉强感知其存活.业务层面有心跳机制,TCP协议也提供了心跳保活机制. 长连接的环境下,人们一般使用 ...
- how-does-mysql-replication-really-work/ what-causes-replication-lag
https://www.cnblogs.com/kevingrace/p/6274073.html https://www.cnblogs.com/kevingrace/p/6261091.html ...
- nginx自定义错误页面
这里配置注意是在 server 443端口 ,蓝色部分为主要部分.这个server不是全部代码. server{ #监听443端口 listen ; #对应的域名,把baofeidyz.com改成你们 ...
- Laya的版本管理
参考: Laya项目发布详解 发布时,勾选开启版本管理 点击上图“是否开启版本管理”右边的+号. 可以选择加入版本管理,或者排除版本管理的文件夹. 比如我要排除bin/test这个文件夹下的文件,不使 ...
- git pull的时候提示git pull <remote> <branch>
yuanqiao@yuanqiao-PC MINGW64 /h/WorkSpace/git/dadeTest (dev)$ git pullremote: Enumerating objects: 7 ...
- Laravel 数据库实例教程 —— 使用查询构建器对数据库进行增删改查
原文地址:https://blog.csdn.net/lmy_love_/article/details/72832259 获取查询构建器很简单,还是要依赖DB门面,我们使用DB门面的table方法, ...