博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springboot集成 Swagger2的使用
阅读量:4179 次
发布时间:2019-05-26

本文共 3947 字,大约阅读时间需要 13 分钟。

1.jar包

2.配置
3.controller

先从jar包说起 添加如下jar包

io.springfox
springfox-swagger2
2.8.0
org.javassist
javassist
io.springfox
springfox-swagger-ui
2.6.1

配置

import springfox.documentation.spi.DocumentationType;@Configuration	    //注入spring容器@EnableSwagger2		//开启swaggerpublic class Swagger2 {    @Bean    public Docket createRestApi() {        /*        //Swagger中添加请求头        ParameterBuilder userNamePar = new ParameterBuilder();        List
pars = new ArrayList
(); userNamePar.name("x_user_name").description("登陆用户名!!!") .modelRef(new ModelRef("string")).parameterType("header") .required(false).build(); //header中的x_user_name参数非必填,传空也可以 pars.add(userNamePar.build()); //根据每个方法名也知道当前方法在设置什么参数 */ List
pars = new ArrayList
(); return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.quan.controller")) .paths(PathSelectors.any()).build() .globalOperationParameters(pars); return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.××××.controller")) .paths(PathSelectors.any()).build() .globalOperationParameters(pars); } @SuppressWarnings("deprecation") private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("Demo RESTful APIs") .description("Demo RESTful APIs") .termsOfServiceUrl("") .contact("").version("0.0.1-SNAPSHOT").build(); }}

controller

@CrossOrigin(origins = "*")	//解决跨域@RefreshScope@RestController//@Api(tags = {"Module"})@Api(description = "消息模块", tags = "news")@RequestMapping("/Manager/Module")public class ModuleManager {    private Logger logger = LoggerFactory.getLogger(ModuleManager.class);    @Autowired    private SysModuleService sysModuleService;    @ApiOperation(value="获取父级模块",notes="通过该接口获取父级模块,获取PId=0的模块")    @GetMapping("/Parents")    public ResponseResult getModuleParents            (@RequestParam(value = "page_no",required = false) Integer page_no, @RequestParam(value = "page_size",required = false)                    Integer page_size) {        logger.info("getModuleParents()");        return null;    }    }

1.有时候会遇到swagger 不显示接口的情况,注意在swagger2的配置中

.apis(RequestHandlerSelectors.basePackage("com.××××.controller"))

这里要写上controller的全限定名。

2.有时候又会遇到点击接口没有反应的情况,注意在

@Api(description = "首页图片",tags = "homepage")public class SysNewsController {

controller层的Api注解上的tags属性的值写成英文即可。

还有一个小问题 需要提出

当controller层没有返回数据时

public ServerResponse add(@RequestParam(name = "sysNews", required = false) String sysNews,     @RequestParam(name = "id", required = false) Integer id) {/** * 接口响应的封装类 * */public class ServerResponse implements Serializable {    private static final long serialVersionUID = 8095809201605680157L;    private int code;    private String msg;    private Object data;

在这里插入图片描述

当controller层有返回数据时

public Response
> add(@RequestParam(name = "sysNews", required = false) String sysNews, @RequestParam(name = "id", required = false) Integer id) {@Data@NoArgsConstructor@AllArgsConstructor@SuperBuilderpublic class Response
{ /** * 是否成功,true-成功,false-失败 */ private Boolean success; /** * 状态码 */ private int code; /** * 状态描述信息 */ private String message; /** * 业务数据 */ private T data;

在这里插入图片描述

这辈子坚持与不坚持都不可怕,怕的是独自走在坚持的道路上!

欢迎加入技术群聊!
在这里插入图片描述

转载地址:http://gwoai.baihongyu.com/

你可能感兴趣的文章
Spring AOP概述
查看>>
Apache Maven入门指南
查看>>
Apache Maven的插件概述
查看>>
Apache Maven项目提供的Archetype插件详解
查看>>
Apache Maven项目提供的Compiler插件详解
查看>>
Apache Maven项目提供的Ant插件详解
查看>>
Apache Maven项目提供的AntRun插件详解
查看>>
Apache Maven项目提供的EJB插件详解
查看>>
Hibernate中持久化上下文的flush操作之一COMMIT
查看>>
Hibernate的乐观锁并发控制机制
查看>>
Hibernate的悲观锁并发控制机制及LockMode
查看>>
Hibernate中的数据的获取策略(fetching)
查看>>
Hibernate中通过HQL/JPQL查询的方式实现动态数据获取
查看>>
Hibernate中通过FetchProfile的方式实现动态数据获取
查看>>
Hibernate应用中通过JPA配置Entity缓存
查看>>
Hibernate中配置二级缓存的并发策略
查看>>
Hibernate的Entity cache(实体缓存)
查看>>
Hibernate中的Query cache(查询缓存)
查看>>
Hibernate的interceptors与events
查看>>
Android常用代码
查看>>