swagger

Spring Boot 教程

醉酒当歌 提交于 2020-10-21 18:02:31
1. 什么是Swagger? Swagger™的目标是为REST APIs 定义一个标准的,与语言无关的接口,使人和计算机在看不到源码或者看不到文档或者不能通过网络流量检测的情况下能发现和理解各种服务的功能。当服务通过Swagger定义,消费者就能与远程的服务互动通过少量的实现逻辑。类似于低级编程接口,Swagger去掉了调用服务时的很多猜测。 浏览 Swagger 去了解更多关于Swagger 项目的信息,包括附加的支持其他语言的库。 2. 在项目中集成Swagger 2.1 引入maven依赖 我自己的项目中使用的是swagger2。 <!--springboot父工程--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.2.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <dependencies> <!--springboot框架web组件--> <dependency> <groupId>org.springframework.boot</groupId>

SwaggerUI看烦了,IGeekFan.AspNetCore.Knife4jUI 帮你换个新皮肤

假如想象 提交于 2020-10-21 02:03:15
背景 好像是上周四,看到微信群有人说java有轮子swagger-bootstrap-ui,而c#,就是找不到。 于是我一看,就说大话:“这个只是一套UI,他这个有开源地址么” 被@at说:你试试... 当天晚上就把swagger-ui, Knife4j,Swashbuckle.AspNetCore项目的源码都下载下来研究下,看看能不能集成到AspNETCore下,这样我们就能给Swagger UI换套新皮肤。 knife4j knife4j 是swagger-bootstrap-ui库的升级版,作者已全面升级,全部以knife4j命名。 Gitee上也有2.8K 效果图 IGeekFan.AspNetCore.Knife4jUI 他是swagger ui 库: knife4j UI 的.NET Core封装,支持 .NET Core3.0+或.NET Standard2.0。 https://github.com/luoyunchong/IGeekFan.AspNetCore.Knife4jUI 概念对应关系如下 功能 c# java 实现swagger规范 Swashbuckle.AspNetCore spring-fox 封装成nuget包/maven包的UI库 Swashbuckle.AspNetCore.SwaggerUI knife4j-v3-spring-ui UI库

Swashbuckle.AspNetCore3.0的二次封装与使用

南笙酒味 提交于 2020-10-18 02:36:52
关于 Swashbuckle.AspNetCore3.0 一个使用 ASP.NET Core 构建的 API 的 Swagger 工具。直接从您的路由,控制器和模型生成漂亮的 API 文档,包括用于探索和测试操作的 UI。 项目主页: https://github.com/domaindrivendev/Swashbuckle.AspNetCore 项目官方示例: https://github.com/domaindrivendev/Swashbuckle.AspNetCore/tree/master/test/WebSites 之前写过一篇 Swashbuckle.AspNetCore-v1.10 的使用 ,现在 Swashbuckle.AspNetCore 已经升级到 3.0 了,正好开新坑(博客重构)重新封装了下,将所有相关的一些东西抽取到单独的类库中,尽可能的避免和项目耦合,使其能够在其他项目也能够快速使用。 运行示例 封装代码 Swagger封装相关源码: https://github.com/moxycoding/moxy.api.dotnet/tree/master/src/Core/Moxy.Swagger 参考下面步骤可自行封装 1. 新建类库并添加引用 我引用的版本如下 <PackageReference Include="Microsoft

跟我一起学.NetCore之WebApi接口裸奔有风险(Jwt)

江枫思渺然 提交于 2020-10-12 01:46:33
前言 撸码需谨慎,裸奔有风险。经常在一些技术交流群中了解到,还有很多小伙伴的项目中Api接口没有做任何安全机制验证,直接就裸奔了,对于一些临时项目或是个人小项目还好,其余的话,建议小伙伴们酌情考虑都加上,毕竟接口安全这事可大可小。 通常会采用session、cookie、jwt、ids4等方式进行接口安全认证或授权,这里就先拿jwt说事,ids4知识点比较多,后续单独整理整理;对于session和cookie的方式就留给小伙伴们研究吧,因为最近接触或是和朋友聊到的项目中,使用的不多,所以就不单独拿出来细说了。 正文 JSON Web Token (JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息。该信息可以被验证和信任,因为它是数字签名的。---官网翻译 主要用于系统中授权认证,使得在数据交换过程中通过Token方式进行校验,相对比较安全;而Token包含三部分,每部分用点( . )进行拼接,内容结构为: Header.Payload.Signature Header(头) 一个Json对象,通过Base64URL算法将其转换为一个字符串。里面有两个属性,alg和typ分别代表签名算法和生成token的类型。 Payload(负载) 一个Json对象,通过Base64URL算法将其转换为一个字符串

Go gRPC进阶-gRPC转换HTTP(十)

与世无争的帅哥 提交于 2020-10-09 00:32:49
前言 我们通常把 RPC 用作内部通信,而使用 Restful Api 进行外部通信。为了避免写两套应用,我们使用 grpc-gateway 把 gRPC 转成 HTTP 。服务接收到 HTTP 请求后, grpc-gateway 把它转成 gRPC 进行处理,然后以 JSON 形式返回数据。本篇代码以上篇为基础,最终转成的 Restful Api 支持 bearer token 验证、数据验证,并添加 swagger 文档。 gRPC转成HTTP 编写和编译proto 1.编写simple.proto syntax = "proto3"; package proto; import "github.com/mwitkow/go-proto-validators/validator.proto"; import "go-grpc-example/10-grpc-gateway/proto/google/api/annotations.proto"; message InnerMessage { // some_integer can only be in range (1, 100). int32 some_integer = 1 [(validator.field) = {int_gt: 0, int_lt: 100}]; // some_float can only be in

spring-boot-route(五)整合Swagger生成接口文档

允我心安 提交于 2020-10-08 08:33:56
目前,大多数公司都采用了前后端分离的开发模式,为了解决前后端人员的沟通问题,后端人员在开发接口的时候会选择使用swagger2来生成对应的接口文档,swagger2提供了强大的页面调试功能,这样可以有效解决前后端人员沟通难的问题。 下面我们使用SpringBoot结合swagger2生成Restful API文档。 一 搭建项目,引入依赖 新建一个 spring-boot-swaager 的项目,引入swaager2的依赖,由于swagger2的ui不是很美观,这里将使用开源的 swagger-bootstrap-ui 做为ui。 引入依赖 <!-- swaager2依赖 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <!-- swaager2ui --> <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>swagger-bootstrap-ui</artifactId> <version>1.9.6</version> </dependency> 项目中配置swagger相关信息

.NetCore学习笔记:六、Swagger API接口文档工具

此生再无相见时 提交于 2020-10-07 04:39:02
Swagger一个优秀的Api接口文档生成工具。Swagger可以可以动态生成Api接口文档,有效的降低前后端人员关于Api接口的沟通成本,促进项目高效开发。 1、使用NuGet安装最新的包:Swashbuckle.AspNetCore。 2、编辑项目文件(NetCoreTemplate.Web.csproj),配置Xml文档生成目录。 < PropertyGroup Condition ="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'" > < DocumentationFile > bin\Debug\netcoreapp3.1\NetCoreTemplate.Web.xml </ DocumentationFile > < OutputPath > bin\Debug\netcoreapp3.1\ </ OutputPath > </ PropertyGroup > < PropertyGroup Condition ="'$(Configuration)|$(Platform)'=='Release|AnyCPU'" > < DocumentationFile > bin\Release\netcoreapp3.1\NetCoreTemplate.Web.xml </ DocumentationFile > <

springcloud知识点笔记

一个人想着一个人 提交于 2020-10-06 02:04:55
Eureka的自我保护机制:默认情况下EurekaClient定时向EurekaServer端发送心跳包,如果EurekaServer在一定时间内没有收到EurekaClient发送的心跳包,便会直接从服务注册列表中剔除该服务(默认90S),但是在短时间丢失大量的服务实例心跳,这时候EurekaServer会开启自我保护机制,不会剔除该服务。 Ribbon本地负载均衡算法实现方式:总请求数%服务器数量得到实际下标服务器位置。 服务雪崩解决方法:服务降级、服务熔断、服务隔离 服务降级分为:超时降级、失败次数降级、故障降级、限流降级。 超时降级:也就是大部分人网上说的,再高并发情况下,防止用户一直等待,直接返回一个友好提示给客户端。 失败次数降级: 主要是一些不稳定的API,当失败调用次数达到一定阀值自动降级,同样要使用异步机制探测回复情况 。 故障降级: 如要调用的远程服务挂掉了(网络故障、DNS故障、HTTP服务返回错误的状态码和RPC服务抛出异常),则可以直接降级 。降级后的处理方案有:默认值(比如库存服务挂了,返回默认现货)、兜底数据(比如广告挂了,返回提前准备好的一些静态页面)、缓存(之前暂存的一些缓存数据)。 限流降级: 当触发了限流超额时,可以使用暂时屏蔽的方式来进行短暂的屏蔽。当我们去秒杀或者抢购一些限购商品时,此时可能会因为访问量太大而导致系统崩溃

asp.net core web api + Element-UI的Vue管理后台

蓝咒 提交于 2020-10-05 14:43:27
后端:asp.net core web api + EF Core 前端:VUE + Element-UI+ Node环境的后台管理系统 数据库:SQL Server2017 服务器:阿里云服务器 线上地址: http://www.wangjk.wang 账号:admin 密码:123 API文档地址: http://www.wangjk.wang:8090/swagger/ui/index.html 说明:有好多功能都没完善,可能还会有存在的错误,也没有测试过,先放上去看看吧。 来源: oschina 链接: https://my.oschina.net/u/4404541/blog/4333457

SpringBoot 整合 Swagger

流过昼夜 提交于 2020-10-03 14:25:20
Swagger介绍 1.什么是Swagger 作为后端程序开发,我们多多少少写过几个后台接口项目,不管是编写手机端接口,还是目前比较火热的前后端分离项目,前端与后端都是由不同的工程师进行开发,那么这之间的沟通交流通过接口文档进行连接。但往往伴随很多问题,后端程序员认为编写接口文档及维护太花费时间精力,前端的认为接口文档变动更新不及时,导致程序之间相互调用出行问题。那么能简化接口文档的编写直接自动生成吗?当然能!如是乎Swagger这种接口文档在线自动生成工具便孕育而生。 Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。Swagger 让部署管理和使用功能强大的API从未如此简单。 2.Swagger优点 代码变,文档变。只需要少量的注解,Swagger 就可以根据代码自动生成 API 文档,很好的保证了文档的时效性。 跨语言性,支持 40 多种语言。 Swagger UI 呈现出来的是一份可交互式的 API 文档,我们可以直接在文档页面尝试 API 的调用,省去了准备复杂的调用参数的过程。 还可以将文档规范导入相关的工具(例如 Postman、SoapUI),