Swagger学习使用

swagger升级导致访问ui页面地址不一样

方式一

依赖

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.3.RELEASE</version>
</parent>
<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</version>
</dependency>

启用Swagger2

@EnableSwagger2
@SpringBootApplication
public class AmisProjectApplication extends SpringBootServletInitializer{public static void main(String[] args) {SpringApplication.run(AmisProjectApplication.class,args);}//使用外部tomcat启动项目要重写该方法@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {return builder.sources(AmisProjectApplication.class);}
}

定义Swagger配置类

package com.xysd.amisproject;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Parameter;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;import java.util.ArrayList;
import java.util.List;@Configuration
public class SwaggerConfig {@Beanpublic Docket createApiDocket() {ParameterBuilder tokenPar = new ParameterBuilder();List<Parameter> pars = new ArrayList<Parameter>();tokenPar.parameterType("header")//参数类型支持header, cookie, body, query etc.name("access_token")//参数名.defaultValue("")//默认值.description("令牌")//描述信息.modelRef(new ModelRef("string"))//指定参数值的类型.required(false)//非必需,这里是全局配置.build();pars.add(tokenPar.build());//根据配置文件项 swagger是否启用,禁用return new Docket(DocumentationType.SWAGGER_2).globalOperationParameters(pars).apiInfo(apiInfo()).enable(true).select().apis(RequestHandlerSelectors.basePackage("com.xysd.amisproject")).paths(PathSelectors.ant("/api/**")).build().groupName("对外API接口文档");}@Beanpublic Docket create_ApiDocket() {ParameterBuilder tokenPar = new ParameterBuilder();List<Parameter> pars = new ArrayList<Parameter>();tokenPar.parameterType("header")//参数类型支持header, cookie, body, query etc.name("access_token")//参数名.defaultValue("")//默认值.description("令牌")//描述信息.modelRef(new ModelRef("string"))//指定参数值的类型.required(false)//非必需,这里是全局配置.build();pars.add(tokenPar.build());//根据配置文件项 swagger是否启用,禁用return new Docket(DocumentationType.SWAGGER_2).globalOperationParameters(pars).apiInfo(apiInfo()).enable(true).select().apis(RequestHandlerSelectors.basePackage("com.xysd.amisproject")).paths(PathSelectors.ant("/_api/**")).build().groupName("对内API接口文档");}private ApiInfo apiInfo() {return new ApiInfoBuilder().title("AMIS-PROJECT").description("AMIS-PROJECT接口文档").termsOfServiceUrl("").version("1.0").build();}}

测试

启动本地服务
访问地址
http://localhost:8000/amis-project/swagger-ui.html

效果图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

方式二

依赖

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.6.RELEASE</version>
</parent>
<dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version>
</dependency>

启用Swagger2


@EnableOpenApi
@SpringBootApplication
public class AmisProjectApplication extends SpringBootServletInitializer{public static void main(String[] args) {SpringApplication.run(AmisProjectApplication.class,args);}//使用外部tomcat启动项目要重写该方法@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {return builder.sources(AmisProjectApplication.class);}
}

定义配置类

package com.xysd.bizbase.resources;import java.util.ArrayList;
import java.util.List;import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.builders.RequestParameterBuilder;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.ParameterType;
import springfox.documentation.service.RequestParameter;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;@Configuration
public class SwaggerConfig {@Value("${swagger.sysName:''}")private String swaggerSysName;@Beanpublic Docket createApiDocket() {List<RequestParameter> pars = new ArrayList<RequestParameter>();RequestParameterBuilder tokenPar = new RequestParameterBuilder();tokenPar.in(ParameterType.HEADER)//参数类型支持header, cookie, body, query etc.name("access_token")//参数名.description("令牌")//描述信息.required(false)//非必需,这里是全局配置//.query(sb -> sb.defaultValue("1").allowEmptyValue(true)) //指定默认值 指定是否必填;pars.add(tokenPar.build());return new Docket(DocumentationType.OAS_30).globalRequestParameters(pars).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.xysd")).paths(PathSelectors.ant("/*/api/**").or(path -> path.contains("login"))).build().groupName("对外API接口文档");}@Beanpublic Docket createRestDocket() {List<RequestParameter> pars = new ArrayList<RequestParameter>();RequestParameterBuilder tokenPar = new RequestParameterBuilder();tokenPar.in(ParameterType.HEADER)//参数类型支持header, cookie, body, query etc.name("access_token")//参数名.description("令牌")//描述信息.required(false)//非必需,这里是全局配置//.query(sb -> sb.defaultValue("1").allowEmptyValue(true)) //指定默认值 指定是否必填;pars.add(tokenPar.build());return new Docket(DocumentationType.OAS_30).globalRequestParameters(pars).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.xysd")).paths(PathSelectors.ant("/*/rest/**").or(path -> path.contains("login"))).build().groupName("对外REST接口文档");}@Beanpublic Docket create_ApiDocket() {List<RequestParameter> pars = new ArrayList<RequestParameter>();RequestParameterBuilder tokenPar = null;tokenPar = new RequestParameterBuilder();tokenPar.in(ParameterType.HEADER)//参数类型支持header, cookie, body, query etc.name("access_token")//参数名.description("访问令牌")//描述信息.required(false)//非必需,这里是全局配置//.query(sb -> sb.defaultValue("1").allowEmptyValue(true)) //指定默认值 指定是否必填;pars.add(tokenPar.build());tokenPar = new RequestParameterBuilder();tokenPar.in(ParameterType.HEADER)//参数类型支持header, cookie, body, query etc.name("inner_token")//参数名.description("内部令牌")//描述信息.required(false)//非必需,这里是全局配置//.query(sb -> sb.defaultValue("1").allowEmptyValue(true)) //指定默认值 指定是否必填;pars.add(tokenPar.build());return new Docket(DocumentationType.OAS_30).globalRequestParameters(pars).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.xysd")).paths(PathSelectors.ant("/*/_api/**")).build().groupName("对内_API接口文档");}private ApiInfo apiInfo() {return new ApiInfoBuilder().title(swaggerSysName+"接口文档").description(swaggerSysName+"接口文档")//.termsOfServiceUrl("").version("1.0").build();}}

测试

启动服务
访问地址
http://localhost:8000/amis-project/swagger-ui/index.html

效果图

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/250200.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

随机 Transformer

在这篇博客中&#xff0c;我们将通过一个端到端的示例来讲解 Transformer 模型中的数学原理。我们的目标是对模型的工作原理有一个良好的理解。为了使内容易于理解&#xff0c;我们会进行大量简化。我们将减少模型的维度&#xff0c;以便我们可以手动推理模型的计算过程。例如&…

某赛通电子文档安全管理系统 UploadFileList 任意文件读取漏洞复现

0x01 产品简介 某赛通电子文档安全管理系统(简称:CDG)是一款电子文档安全加密软件,该系统利用驱动层透明加密技术,通过对电子文档的加密保护,防止内部员工泄密和外部人员非法窃取企业核心重要数据资产,对电子文档进行全生命周期防护,系统具有透明加密、主动加密、智能…

微信小程序 安卓/IOS兼容问题

一、背景 在开发微信小程序时&#xff0c;不同的手机型号会出现兼容问题&#xff0c;特此记录一下 二、安卓/IOS兼容问题总结 2.1、new Date()时间转换格式时&#xff0c;IOS不兼容 问题&#xff1a;在安卓中时间格式2024-1-31 10:10:10&#xff0c;但是在iOS中是不支持 &q…

Electron桌面应用实战:Element UI 导航栏橙色轮廓之谜与Bootstrap样式冲突解决方案

目录 引言 问题现象及排查过程 描述问题 深入探索 查明原因 解决方案与策略探讨 重写样式 禁用 Bootstrap 样式片段 深度定制 Element UI 组件 隔离样式作用域 结语 引言 在基于 Electron 开发桌面应用的过程中&#xff0c;我们可能时常遇到各种意想不到的问题…

JavaScript高级:防抖和节流

1 防抖&#xff08;debounce&#xff09; 单位时间内&#xff0c;频繁触发事件&#xff0c;只执行最后一次 【例子】王者荣耀英雄回城&#xff0c;只要被打断就要重新来 【应用场景】1. 搜索框搜索输入。只需用户最后一次输入完&#xff0c;再发送请求&#xff1b;2. 手机号、…

美国将限制中国,使用Azure、AWS等云,训练AI大模型

1月29日&#xff0c;美国商务部在Federal Register&#xff08;联邦公报&#xff09;正式公布了&#xff0c;《采取额外措施应对与重大恶意网络行为相关的国家紧急状态》提案。 该提案明确要求美国IaaS&#xff08;云服务&#xff09;厂商在提供云服务时&#xff0c;要验证外国…

生产问题排查系列——未知404状态接口请求

引言 我们的产品主打金融服务领域&#xff0c;以B端客户为我们的核心合作伙伴&#xff0c;然而&#xff0c;我们的服务最终将惠及C端消费者。在技术实现上&#xff0c;我们采用了公司自主研发的微服务框架&#xff0c;该框架基于SpringBoot&#xff0c;旨在提供高效、可靠的服…

Day06-Linux下目录命令讲解及重要文件讲解

Day06-Linux下目录命令讲解及重要文件讲解 1. Linux目录文件1.1 Linux系统目录结构介绍1.1.1 Linux与Windows目录结构对比 1.2 重要的Linux配置文件介绍1.2.1 /etc系统初始化及设置相关重要文件1.2.2 /usr目录的重要知识介绍------应用程序目录1.2.3 /var目录下的路径知识-----…

Mac如何设置一位数密码?

一、问题 Mac如何设置一位数密码&#xff1f; 二、解答 1、打开终端 2、清除全局账户策略 sudo pwpolicy -clearaccountpolicies 输入开机密码&#xff0c;这里是看不见的&#xff0c;输入完回车即可 3、重新设置密码 &#xff08;1&#xff09;打开设置-->用户和群组…

jenkins 下载插件sentry-cli失败 证书过期

现状 npm set ENTRYCLI_CDNURLhttps://cdn.npm.taobao.org/dist/sentry-cli npm set sentrycli_cdnurlhttps://cdn.npm.taobao.org/dist/sentry-cli 原因是npm原域名停止解析&#xff0c;在访问上面sentry-cli的cdn资源的时候 证书过期无法下载。 解决&#xff1a; 替换证书过期…

解析Excel文件内容,按每列首行元素名打印出某个字符串的统计占比(超详细)

目录 1.示例&#xff1a; 1.1 实现代码1&#xff1a;列数为常量 运行结果&#xff1a; 1.2 实现代码2&#xff1a;列数为变量 运行结果&#xff1a; 1.示例&#xff1a; 开发需求&#xff1a;读取Excel文件&#xff0c;统计第3列到第5列中每列的"False"字段占…

机器学习算法决策树

决策树的介绍 决策树是一种常见的分类模型&#xff0c;在金融风控、医疗辅助诊断等诸多行业具有较为广泛的应用。决策树的核心思想是基于树结构对数据进行划分&#xff0c;这种思想是人类处理问题时的本能方法。例如在婚恋市场中&#xff0c;女方通常会先询问男方是否有房产&a…

【c语言】简单贪吃蛇的实现

目录 一、游戏说明 ​编辑 二、地图坐标​ ​编辑 三、头文件 四、蛇身和食物​ 五、数据结构设计​ 蛇节点结构如下&#xff1a; 封装一个Snake的结构来维护整条贪吃蛇&#xff1a;​ 蛇的方向&#xff0c;可以一一列举&#xff0c;使用枚举&#xff1a; 游戏状态&a…

C# winform 多语言(json)方式实现

前后对比 使用nuget json工具包1.总体思路 创建对应的json字典对照表 { "测试":"Test", "语言":"Language", "设置":"Set", "中文(默认)":"Chinese (default)", "英文":"E…

用通俗易懂的方式讲解:一文详解大模型 RAG 模块

文章目录 什么是 RAG&#xff1f;技术交流&资料通俗易懂讲解大模型系列 RAG模块化什么是模块化RAG&#xff1f; 索引模块块优化滑动窗口从小到大元数据附加 结构化组织层次化索引知识图谱文档组织 预检索模块查询扩展多查询子查询CoVe 查询转换重写HyDE 查询路由元数据路由…

Java对象属性设置方式

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; 对象属性设置方式 直接赋值 SystemMappingCode systemMappingCode new SystemMappingCode();systemMappingCode.setCodeResp(request.getCodeResp());systemMapping…

面试八股文(2)

文章目录 1.ArrayList和LinkedList区别2.HashMap和HashTable区别3.线程的创建方式4.Java中异常处理5.Java序列化中某些字段不想进行序列化&#xff1f;6.Java序列化7.静态方法和实例方法8.List、Set、Map三者区别9.ArrayList和Vector区别10.HashMap和HashSet区别 1.ArrayList和…

flask基于Python的期货交易模拟系统的django-afl61-vue

期货交易模拟系统是一个便于用户在线查看期货投资、取消投资、风险控制、账户资金、持仓资金等&#xff0c;管理员进行管理的平台。因此本文主要论述了系统开发的过程和实现的功能&#xff0c;结合Web技术来实现的期货交易模拟系统。本系统以软件工程理论为开发基础&#xff0c…

Linux系统Shell脚本-----------正则表达式 文本三剑客之---------grep、 sed

一、正则表达式 1.前言 正则表达式(regular expression)描述了一种字符串匹配的模式&#xff08;pattern&#xff09;&#xff0c;可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。在Linux中也就是代表我们定义的模式模板&…

【GitHub项目推荐--ChatGPT开源项目】【转载】

Auto-GPT Auto-GPT 是一个实验性的开源项目&#xff0c;基于 GPT-4。你给出 Auto-GPT 一个的任务&#xff0c;它不会立即输出答案&#xff0c;而会先自己通过多轮对话来琢磨、验证、决策&#xff0c;从而自己找出一条达成目标的路&#xff0c;整个过程完全不需要人类插手&…