zoukankan      html  css  js  c++  java
  • Spring Boot 系列(Swagger框架)

    1. Swagger 的使用

    https://github.com/yiyang1314/spring-boots-demo

    1.1 jar包依赖

    		<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>
    

    1.2 java配置

    @Configuration
    @EnableSwagger2
    public class Swapper2Configuration {
    	@Bean
        public Docket createRestApi() {
            return new Docket(DocumentationType.SWAGGER_2)
                    .apiInfo(apiInfo())
                    .select()
                    .apis(RequestHandlerSelectors.basePackage("com.boot.mp.controller"))
                    .paths(PathSelectors.any())
                    .build();
        }
     
        private ApiInfo apiInfo() {
            return new ApiInfoBuilder()
                    .title("用户调用API接口")
                    .description("person [yiyang]")
                    .contact("易阳XXXX公司,http://www.yiyang333.com")
                    .termsOfServiceUrl("http://localhost:8081/")
                    .version("1.2.0")
                    .build();
             //访问地址:http://localhost:8080/ssm/swagger-ui.html       
        }
    	
    }
    

    1.3 代码中使用Swagger

    @RestController
    @Api(description="MP-mysql-API测试接口",value="用户API")
    @RequestMapping("API/user")
    public class UserController {
    	@Autowired
    	private UserService userService;
    	
    	@Autowired
        private UserMapper userMapper;
    	/**
         * 根据用户主键ID查询用户信息
         * @return  返回用户信息
         */
    	@RequestMapping(value="findById",method = RequestMethod.GET)
    	@ApiOperation(value="用户主键ID查询",notes="根据用户主键ID查询用户信息")
    	public User findById(Long id) {
    		User u = userMapper.selectById(id);
    		return u;
    	}
        //........省略
    }
    

    访问效果:
    访问效果

    2. knife4j 的使用

    感兴趣的可以访问官网:https://doc.xiaominfo.com/

    1.1 项目介绍

     Knife4j的前身是swagger-bootstrap-ui,前身swagger-bootstrap-ui是一个纯swagger-ui的ui皮肤项目
    一开始项目初衷是为了写一个增强版本的swagger的前端ui,但是随着项目的发展,面对越来越多的个性化需求,不得不编写后端Java代码以满足新的需求,在swagger-bootstrap-ui的1.8.5~1.9.6版本之间,采用的是后端Java代码和Ui都混合在一个Jar包里面的方式提供给开发者使用.这种方式虽说对于集成swagger来说很方便,只需要引入jar包即可,但是在微服务架构下显得有些臃肿。
    
    因此,项目正式更名为knife4j,取名knife4j是希望她能像一把匕首一样小巧,轻量,并且功能强悍,更名也是希望把她做成一个为Swagger接口文档服务的通用性解决方案,不仅仅只是专注于前端Ui前端.
    swagger-bootstrap-ui的所有特性都会集中在knife4j-spring-ui包中,并且后续也会满足开发者更多的个性化需求.
    主要的变化是,项目的相关类包路径更换为com.github.xiaoymin.knife4j前缀,开发者使用增强注解时需要替换包路径
    后端Java代码和ui包分离为多个模块的jar包,以面对在目前微服务架构下,更加方便的使用增强文档注解(使用SpringCloud微服务项目,只需要在网关层集成UI的jar包即可,因此分离前后端)
    knife4j沿用swagger-bootstrap-ui的版本号,第1个版本从1.9.6开始,关于使用方法,请参考文档
    

    文档API

    各种集成案列

    • 第一步:在maven项目的pom.xml中引入Knife4j的依赖包,代码如下:
    <dependency>
        <groupId>com.github.xiaoymin</groupId>
        <artifactId>knife4j-spring-boot-starter</artifactId>
        <version>2.0.7</version>
    </dependency>
    
    • 第二步:创建Swagger配置依赖,代码如下:
    @Configuration
    @EnableSwagger2WebMvc
    public class Knife4jConfiguration {
    
        @Bean(value = "defaultApi2")
        public Docket defaultApi2() {
            Docket docket=new Docket(DocumentationType.SWAGGER_2)
                    .apiInfo(new ApiInfoBuilder()
                            //.title("swagger-bootstrap-ui-demo RESTful APIs")
                            .description("# swagger-bootstrap-ui-demo RESTful APIs")
                            .termsOfServiceUrl("http://www.xx.com/")
                            .contact("xx@qq.com")
                            .version("1.0")
                            .build())
                    //分组名称
                    .groupName("2.X版本")
                    .select()
                    //这里指定Controller扫描包路径
                    .apis(RequestHandlerSelectors.basePackage("com.github.xiaoymin.knife4j.controller"))
                    .paths(PathSelectors.any())
                    .build();
            return docket;
        }
    }
    
    • IndexController.java包含一个简单的RESTful接口,代码示例如下:
    @Api(tags = "首页模块")
    @RestController
    public class IndexController {
    
        @ApiImplicitParam(name = "name",value = "姓名",required = true)
        @ApiOperation(value = "向客人问好")
        @GetMapping("/sayHi")
        public ResponseEntity<String> sayHi(@RequestParam(value = "name")String name){
            return ResponseEntity.ok("Hi:"+name);
        }
    }
    

    启动Spring Boot工程,在浏览器中访问:http://localhost:17790/doc.html

  • 相关阅读:
    org.hibernate.MappingException: duplicate import异常
    java web项目导入问题
    android.os.NetworkOnMainThreadException解决
    Eclipse无法识别小米2S手机
    ANDROID模拟器访问本地WEB应用
    【UE4】二十四、UE4内部版本引擎和官方版本引擎版本保持兼容的方法
    【UE4】二十三、UE4笔试面试题
    如何设置文件审计软件FileAudit的浏览选项
    PHP
    PHP
  • 原文地址:https://www.cnblogs.com/yiyangyu/p/swagger23435.html
Copyright © 2011-2022 走看看