SwaggerUi就是自动生成接口文档的这么一个类似于插件的工具,可以直接访问接口。

首先打开pom文件,将插件引进来,然后增加一个属性<properties>,用来设置版本号的,然后直接用${}引用。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <parent>
  6. <artifactId>JavaInterfaceTest</artifactId>
  7. <groupId>com.peixm.code</groupId>
  8. <version>1.0-SNAPSHOT</version>
  9. </parent>
  10. <modelVersion>4.0.0</modelVersion>
  11.  
  12. <artifactId>Chapter10</artifactId>
  13.  
  14. <properties>
  15. <swagger.version>2.6.1</swagger.version>
  16. </properties>
  17.  
  18. <dependencies>
  19. <dependency>
  20. <groupId>org.springframework.boot</groupId>
  21. <artifactId>spring-boot-starter-web</artifactId>
  22. </dependency>
  23.  
  24. <dependency>
  25. <groupId>io.springfox</groupId>
  26. <artifactId>springfox-swagger2</artifactId>
  27. <version>${swagger.version}</version>
  28. </dependency>
  29.  
  30. <dependency>
  31. <groupId>io.springfox</groupId>
  32. <artifactId>springfox-swagger-ui</artifactId>
  33. <version>${swagger.version}</version>
  34. </dependency>
  35.  
  36. <dependency>
  37. <groupId>org.projectlombok</groupId>
  38. <artifactId>lombok</artifactId>
  39. <version>1.16.14</version>
  40. </dependency>
  41. </dependencies>
  42.  
  43. </project>

然后创建一个config包,在创建一个类SwaggerConfig.java,用来配置swager

  1. package com.course.config;
  2.  
  3. import org.springframework.context.annotation.Bean;
  4. import org.springframework.context.annotation.Configuration;
  5. import springfox.documentation.builders.ApiInfoBuilder;
  6. import springfox.documentation.builders.PathSelectors;
  7. import springfox.documentation.service.ApiInfo;
  8. import springfox.documentation.service.Contact;
  9. import springfox.documentation.spi.DocumentationType;
  10. import springfox.documentation.spring.web.plugins.Docket;
  11. import springfox.documentation.swagger2.annotations.EnableSwagger2;
  12.  
  13. @Configuration //在springboot里面专门为了加载配置文件的标签
  14. @EnableSwagger2 //自动加载配置文件
  15. public class SwaggerConfig {
  16. @Bean
  17. public Docket api(){
  18. return new Docket(DocumentationType.SWAGGER_2)
  19. .apiInfo(apiInfo())
  20. .pathMapping("/")
  21. .select()
  22. .paths(PathSelectors.regex("/.*")) //匹配那些访问的方法
  23. .build();
  24. }
  25.  
  26. private ApiInfo apiInfo() {
  27. //http://localhost:8888/swagger-ui.html
  28. return new ApiInfoBuilder().title("我的接口文档")
  29. .contact(new Contact("xiaomin","","553238711@qq.com"))
  30. .description("这是我的swaggerui生成的接口文档")
  31. .version("1.0.0.0")
  32. .build();
  33. }
  34.  
  35. }

然后在想要在swagger看到的接口类的类名上添加注解:@Api(value = "/",description = "这是我全部的get方法"),在每个方法上面添加  @ApiOperation(value = "通过这个方法可以获取到cookies的值",httpMethod ="GET"),(或者post)value就是一个描述,描述这个方法是做什么的。

  1. package com.course.server;
  2.  
  3. import io.swagger.annotations.Api;
  4. import io.swagger.annotations.ApiOperation;
  5. import org.springframework.web.bind.annotation.*;
  6.  
  7. import javax.servlet.http.Cookie;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10. import java.util.HashMap;
  11. import java.util.Map;
  12. import java.util.Objects;
  13.  
  14. @RestController //被告诉我是你需要扫描的类
  15. @Api(value = "/",description = "这是我全部的get方法")
  16. public class MyGetMethod {
  17.  
  18. @RequestMapping(value = "/getCookies",method = RequestMethod.GET) //访问的路径是什么
  19. @ApiOperation(value = "通过这个方法可以获取到cookies的值",httpMethod ="GET")
  20. public String getCookies(HttpServletResponse response){
  21. //HttpServerletRequest 装请求信息
  22. //HttpServerletResponse 装响应信息
  23. Cookie cookie = new Cookie("login","ture");
  24. response.addCookie(cookie);
  25.  
  26. return "恭喜你获得cookies信息成功";
  27. }
  28.  
  29. /**
  30. * 要求客户端携带cookies访问
  31. * */
  32.  
  33. @RequestMapping(value = "/get/with/cookies",method = RequestMethod.GET)
  34. @ApiOperation(value = "要求客户端携带cookies访问",httpMethod = "GET")
  35. public String getWithCookies(HttpServletRequest request){
  36. Cookie[] cookies = request.getCookies();
  37. if(Objects.isNull(cookies)){
  38. return "你必须携带cookies信息来";
  39. }
  40.  
  41. for(Cookie cookie : cookies){
  42. if(cookie.getName().equals("login") && cookie.getName().equals("true")){
  43. return "恭喜你访问成功";
  44. }
  45. }
  46. return "你必须携带cookies信息来";
  47. }
  48.  
  49. /**
  50. * 开发一个需要携带参数才能访问的get请求
  51. * 第一种实现方式是 url: ip:port/get/with/param?key=value&key=value
  52. * 模拟获取商品列表 开始页数,结束的页数,一页20条数据
  53. * */
  54.  
  55. //第一种需要携带参数访问的get请求
  56. @RequestMapping(value = "/get/with/param",method = RequestMethod.GET)
  57. @ApiOperation(value = "携带参数才能访问的get请求",httpMethod = "GET")
  58. public Map<String,Integer> getList(@RequestParam Integer start,
  59. @RequestParam Integer end){
  60. Map<String,Integer> myList = new HashMap<>();
  61. myList.put("鞋",400);
  62. myList.put("衬衫",300);
  63. myList.put("干脆面",1);
  64.  
  65. return myList;
  66.  
  67. }
  68.  
  69. /**
  70. *第2种需要携带参数访问的get请求
  71. * url: ip:port/get/with/param/10/20
  72. * */
  73.  
  74. @RequestMapping(value = "/get/with/param/{start}/{end}")
  75. @ApiOperation(value = "第2种需要携带参数访问的get请求",httpMethod = "GET")
  76. public Map myGetList(@PathVariable Integer start,
  77. @PathVariable Integer end){
  78.  
  79. Map<String,Integer> myList = new HashMap<>();
  80. myList.put("鞋",400);
  81. myList.put("衬衫",300);
  82. myList.put("干脆面",1);
  83.  
  84. return myList;
  85. }
  86.  
  87. }

然后改变启动文件里面的要检测的包

然后在浏览器输入:http://localhost:8888/swagger-ui.html 就会出现所有的接口

点击接口可以进行接口测试:try out就可以请求

Springboot 4.Springboot 集成SwaggerUi的更多相关文章

  1. Springboot+swagger2.7集成开发

    Springboot+swagger2.7集成开发 本篇文章是介绍最新的springboot和swagger2.7集成开发和2.0稍微有一些出入: Springboot集成环境配置 Swagger2. ...

  2. 【java框架】SpringBoot(3) -- SpringBoot集成Swagger2

    1.SpringBoot web项目集成Swagger2 1.1.认识Swagger2 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体 ...

  3. SpringBoot12 QueryDSL01之QueryDSL介绍、springBoot项目中集成QueryDSL

    1 QueryDSL介绍 1.1 背景 QueryDSL的诞生解决了HQL查询类型安全方面的缺陷:HQL查询的扩展需要用字符串拼接的方式进行,这往往会导致代码的阅读困难:通过字符串对域类型和属性的不安 ...

  4. SpringBoot(七):集成DataSource 与 Druid监控配置

    绑定DataSource:Spring Boot默认的数据源是:org.apache.tomcat.jdbc.pool.DataSource,Druid是Java语言中最好的数据库连接池,并且能够提供 ...

  5. DEMO: springboot 与 freemarker 集成

    直接在 DEMO: springboot 与 mybatis 集成 基础上,进行修改. 1.pom.xml 中引用 依赖 <dependency> <groupId>org.s ...

  6. Springboot 和 Mybatis集成开发

    Springboot 和 Mybatis集成开发 本项目使用的环境: 开发工具:Intellij IDEA 2017.1.3 jdk:1.7.0_79 maven:3.3.9 额外功能 PageHel ...

  7. 微服务学习三:springboot与springcloud集成之Eurake的使用(server端,client端)

    这个多亏了网站上的一个大神的博客: http://blog.csdn.net/forezp/article/details/70148833 强烈推荐学习: 1.springcloud是什么,这个大家 ...

  8. 在前后端分离的SpringBoot项目中集成Shiro权限框架

    参考[1].在前后端分离的SpringBoot项目中集成Shiro权限框架 参考[2]. Springboot + Vue + shiro 实现前后端分离.权限控制   以及跨域的问题也有涉及

  9. SpringBoot系列之集成jsp模板引擎

    目录 1.模板引擎简介 2.环境准备 4.源码原理简介 SpringBoot系列之集成jsp模板引擎 @ 1.模板引擎简介 引用百度百科的模板引擎解释: 模板引擎(这里特指用于Web开发的模板引擎)是 ...

  10. SpringBoot系列之集成Druid配置数据源监控

    SpringBoot系列之集成Druid配置数据源监控 继上一篇博客SpringBoot系列之JDBC数据访问之后,本博客再介绍数据库连接池框架Druid的使用 实验环境准备: Maven Intel ...

随机推荐

  1. SQL 百万级数据提高查询速度的方法

    ----------------[转] 1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描.2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 ...

  2. vue(2)—— vue简单语法运用,常用指令集

    按照前面的文章:vue(1)——node.js安装使用,利用npm安装vue  安装完vue之后,就可以使用vue了 vue vue简介 前面安装好vue之后,确实还没有对vue进行介绍,首先,官网: ...

  3. SQL 创建分区表

    (以项目中实际使用的GNSS库为例) 背景:数据量巨大,定时创建月表存放数据,月表中数据存放在不同的文件组中来提高查询效率   一.创建数据库,添加文件组 除了逻辑文件和物理文件的分离之外,SQL S ...

  4. lnmp环境里安装mssql及mssql的php扩展

    小活中用到mssql,于是在自己lnmp环境中安装各mssql数据库 步骤如下: 源码编译安装 (1)下载freetds-stable-0.91源码:http://download.csdn.net/ ...

  5. 【原】Java学习笔记013 - 阶段测试

    package cn.temptation; import java.util.Scanner; public class Sample01 { public static void main(Str ...

  6. docker 基础

    概述 起源 2013 年由 DotCloud 公司开源出来的容器管理工具 DotCloud 公司是一家 PAAS 服务提供商,从 docker 的出身也可以看出它的主要功能和方向 技术原理 开始时是基 ...

  7. 【Python 08】汇率兑换2.0-1(字符串索引)

     1.案例描述 设计一个汇率换算程序,其功能是将人民币转换为美元,或者美元转换为人民币. 增加功能:根据输入判断是人民币还是美元,进行相应的转换计算. 2.案例分析 3.字符串 两个双引号或单引号括起 ...

  8. mybatis 错误

    org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.TooManyR ...

  9. C# 使用微软自带的Speech进行语音输出

    1.在VS中使用微软自带的Speech进行语音播报,首先需要添加引用: 2.具体实现逻辑代码如下:

  10. android9.0系统适配遇到的问题

    一.apk在9.0以下的系统上安装运行,没有问题.但是在9.0系统上运行会弹出一个框 解决办法: private void closeAndroidPDialog() { try { Class aC ...