Swagger UI

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

醉酒当歌 提交于 2020-05-02 09:57:34
1.前言 1.1 SwaggerUI SwaggerUI 是一个简单的Restful API 测试和文档工具。简单、漂亮、易用( 官方demo )。通过读取JSON 配置显示API. 项目本身仅仅也只依赖一些 html,css.js静态文件. 你可以几乎放在任何Web容器上使用。 1.2 Swashbuckle Swashbuckle 是.NET类库,可以将WebAPI所有开放的控制器方法生成对应 SwaggerUI 的JSON配置。再通过 SwaggerUI 显示出来。类库中已经包含 SwaggerUI 。所以不需要额外安装。 2.快速开始 创建项目 OnlineAPI来封装百度音乐服务( 示例下载 ) ,通过API可以搜索、获取音乐的信息和播放连接。 我尽量删除一些我们demo中不会用到的一些文件,使其看上去比较简洁。 WebAPI 安装 Swashbuckle Install-Package Swashbuckle 代码注释生成文档说明。 Swashbuckle 是通过生成的XML文件来读取注释的,生成 SwaggerUI ,JSON 配置中的说明的。 安装时会在项目目录 App_Start 文件夹下生成一个 SwaggerConfig.cs 配置文件,用于配置 SwaggerUI 相关展示行为的。如图: 将配置文件大概99行注释去掉并修改为 c

Swagger实现Api(基于.NET core 2.2)

和自甴很熟 提交于 2020-05-02 09:56:52
创建.NET core WebApi 1.打开vs选中新建项目- >选中.NET Core - >ASP.NET Core Web应用程序: 2.选择WebApi,这里我选择的是.NET core2.2为目前最新版本 3.创建好的项目结构 4.查看效果 使用浏览器打开项目查看效果: http://localhost:端口号/api/values 5.创建测试控制器类,允许跨域访问 控制器路由: [Route("api/Test")] 访问地址: http://localhost:端口号/api/Test/5 跨域处理 Core WebAPI的项目中自带了跨域Cors的处理,不需要单独添加程序包。我们只需要在全局配置处配置就可以了,打开Startup.cs public void ConfigureServices(IServiceCollection services) { services.AddMvc(); services.AddCors(options => { options.AddPolicy("any", builder => { builder.AllowAnyOrigin() //允许任何来源的主机访问 .AllowAnyMethod() .AllowAnyHeader() .AllowCredentials();//指定处理cookie }); }); }

Asp.netCore WebApi初体验之搭建Swagger并在IIS上部署

余生长醉 提交于 2020-05-02 09:55:31
1、新建.netCore webapi项目 2、安装swagger ,通过 Package Manager 控制台: Install-Package 3、Startup.cs中注册服务并添加至管道 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Threading.Tasks; 5 using Microsoft.AspNetCore.Builder; 6 using Microsoft.AspNetCore.Hosting; 7 using Microsoft.AspNetCore.HttpsPolicy; 8 using Microsoft.AspNetCore.Mvc; 9 using Microsoft.Extensions.Configuration; 10 using Microsoft.Extensions.DependencyInjection; 11 using Microsoft.Extensions.Logging; 12 using Microsoft.Extensions.Options; 13 14 namespace CoreTest 15 { 16 public class Startup 17 { 18 public

WebApi生成在线API文档--Swagger

▼魔方 西西 提交于 2020-05-02 09:24:04
1.前言 1.1 SwaggerUI SwaggerUI 是一个简单的Restful API 测试和文档工具。简单、漂亮、易用( 官方demo )。通过读取JSON 配置显示API. 项目本身仅仅也只依赖一些 html,css.js静态文件. 你可以几乎放在任何Web容器上使用。 1.2 Swashbuckle Swashbuckle 是.NET类库,可以将WebAPI所有开放的控制器方法生成对应 SwaggerUI 的JSON配置。再通过 SwaggerUI 显示出来。类库中已经包含 SwaggerUI 。所以不需要额外安装。 2.快速开始 创建项目 OnlineAPI 来封装 百度音乐服务 ( 示例下载 ) ,通过API可以搜索、获取音乐的信息和播放连接。 我尽量删除一些我们demo中不会用到的一些文件,使其看上去比较简洁。 WebAPI 安装 Swashbuckle Install-Package Swashbuckle 代码注释生成文档说明。 Swashbuckle 是通过生成的XML文件来读取注释的,生成 SwaggerUI ,JSON 配置中的说明的。 安装时会在项目目录 App_Start 文件夹下生成一个 SwaggerConfig.cs 配置文件,用于配置 SwaggerUI 相关展示行为的。如图: 将配置文件大概99行注释去掉并修改为 c

ASP.NET WebApi使用Swagger做接口文档

早过忘川 提交于 2020-05-02 09:23:48
一,什么是Swagger 相信在做接口的,都会被接口文档烦的不行,接口文档没及时更新,前后端不一致等问题,而Swagger就是用来解决这一问题的!Swagger会根据api方法的注释生成相应的文档,让开发人员不必须再去写接口文档!效果图如下 二,如何在ASP.NET WebApi中使用Swagger 首先,创建一个WebApi 程序SwaggerDemo,这里我不再说如何创建WebApi了,相信大部分的朋友都会,不会的,稍加研究一下就会了。 然后,从nuget 管理器上面下载Swagger,搜索Swagger,选择Swashbuckle安装。 安装完成后,我们新创建一个控制器,因为本人懒,就这样直接命名为Default了, 添加相应的接口方法和注释,我们的基本工作就算完成了。 // / <summary> // / hello // / </summary> // / <returns></returns> [HttpGet] public string Hello() { return "hello ,to go!" ; } // / <summary> // / 返回输入值 // / </summary> // / <param name="str">str</param> // / <returns></returns> public string GetMess

【WebAPI No.4】Swagger实现API文档功能

廉价感情. 提交于 2020-05-02 09:23:31
介绍: Swagger也称为Open API,Swagger从API文档中手动完成工作,并提供一系列用于生成,可视化和维护API文档的解决方案。简单的说就是一款让你更好的书写API文档的框架。 我们为什么选择swagger,现在的网站开发结果越来越注重前后端的分离,比如以前的webFrom到现在的mvc模式都是为了这个前后端的分离。就算再如何的分离实现,也是不可避免的要进行数据交互的,那么接口的重要性就提现出来了。他成了前端和后端交互的重要途径,API文档也因此成了前端开发人员与后端开发人员的重要纽带。所有我们有一个API文档框架岂不是美哉。 Swashbuckle有三个主要组件: Swashbuckle.AspNetCore.Swagger:Swagger对象模型和中间件,将SwaggerDocument对象公开为JSON端点。 Swashbuckle.AspNetCore.SwaggerGen:一种Swagger生成器,可SwaggerDocument直接从路由,控制器和模型构建对象。它通常与Swagger端点中间件结合使用,以自动公开Swagger JSON。 Swashbuckle.AspNetCore.SwaggerUI:Swagger UI工具的嵌入式版本。它将Swagger JSON解释为构建丰富的,可定制的Web API功能描述体验。它包括用于公共方法的内置测试线束

Swagger实现API文档功能

生来就可爱ヽ(ⅴ<●) 提交于 2020-05-02 09:23:19
介绍: wagger也称为Open API,Swagger从API文档中手动完成工作,并提供一系列用于生成,可视化和维护API文档的解决方案。简单的说就是一款让你更好的书写API文档的框架。 我们为什么选择swagger,现在的网站开发结果越来越注重前后端的分离,比如以前的webFrom到现在的mvc模式都是为了这个前后端的分离。就算再如何的分离实现,也是不可避免的要进行数据交互的,那么接口的重要性就提现出来了。他成了前端和后端交互的重要途径,API文档也因此成了前端开发人员与后端开发人员的重要纽带。所有我们有一个API文档框架岂不是美哉。 Swashbuckle有三个主要组件: Swashbuckle.AspNetCore.Swagger:Swagger对象模型和中间件,将SwaggerDocument对象公开为JSON端点。 Swashbuckle.AspNetCore.SwaggerGen:一种Swagger生成器,可SwaggerDocument直接从路由,控制器和模型构建对象。它通常与Swagger端点中间件结合使用,以自动公开Swagger JSON。 Swashbuckle.AspNetCore.SwaggerUI:Swagger UI工具的嵌入式版本。它将Swagger JSON解释为构建丰富的,可定制的Web API功能描述体验。它包括用于公共方法的内置测试线束。

二、Core授权-2 之.net core 基于Jwt实现Token令牌(策略)

对着背影说爱祢 提交于 2020-05-02 09:22:49
Authorization其目标就是验证Http请求能否通过验证。ASP.Net Core提供了很多种Authorization方式,详细可以参考 微软官方文档 。在这里只详细介绍三种方式: Policy Middleware Custom Attribute 一、Role授权 代码如下: #region jwt验证 services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { options.TokenValidationParameters = new TokenValidationParameters { ValidIssuer = Configuration[ " Jwt:Issuer " ], ValidAudience = Configuration[ " Jwt:Audience " ], IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration[ " Jwt:SecretKey " ])) }; }); #endregion 在Claim中设置了Role 所以我们可以将 [Authorize] 标签写成[Authorize(Roles=

基于.NET Core 3.1的WebApi集成swagger

那年仲夏 提交于 2020-05-02 09:22:22
=============================================== 2020/1/8_第1次修改 ccb_warlock =============================================== swagger作为Asp .Net的接口文档已经应用于当前系统一段时间了,比起开个postman填参数请求来说这个后台开发可以直接用swagger来快速测试接口的业务,前端开发通过查看swagger可以快速了解后台API的输入输出(毕竟开发进度紧张的情况下不可能来得及及时维护文档,但是开发环境的swagger只要代码更新就会一起更新) 最近为了试验EF Core 2.2的datetime类型存在的一个缺陷,公司也没有1个.net core 3.0以上的项目,没办法只有先改造.net core 2.2的项目到.net core 3.1以后,再进行下一步测试。 在做框架升级的时候,不得不实现swagger升级的问题。而swagger的升级问题花了点时间来处理,所以记录下过程方便以后查看。 现在的稳定版还不支持.net core 3.0+,所以Nuget里需要升级下面2个项目到5.0.0以上的预览版才能实现swagger的升级。 Swashbuckle.AspNetCore( 勾选上预发行,当前要v5.0.0-rc5以上版本 )

Springboot登录拦截器

那年仲夏 提交于 2020-05-02 09:00:37
Springboot登录拦截器 和 swagger框架接口自动生成html文档 使用开发工具:IDEA 实现步骤如下 1.需导入的依赖如下: <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--swagger api 依赖 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version> 2.9 . 2 </version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version> 2.9 . 2 <