配置
一、添加依赖
<!-- swagger -->
<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>
二、编写配置类
package com.peko.swagger.config;
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.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestApi(){
return new Docket(DocumentationType.SWAGGER_2)
.pathMapping("/")
.select()
//扫描接口包
.apis(RequestHandlerSelectors.basePackage("com.peko.swagger.controller"))
.paths(PathSelectors.any())
.build().apiInfo(new ApiInfoBuilder()
.title("标题")
.description("描述")
.version("1.0")
.contact(new Contact("name","url","email"))
.license("License")
.licenseUrl("LicenseUrl")
.build()
);
}
}
使用
一、编写controller
package com.peko.swagger.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("hello")
public class HelloController {
@GetMapping("hi")
public String hi(){
return "hi";
}
@PostMapping("bye")
public String bye(String param1,String param2){
return "bye";
}
}
二、启动项目,打开 http://localhost:8080/swagger-ui.html
相关注解使用
package com.peko.swagger.controller;
import com.peko.swagger.dto.MyParams;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("hello")
@Api(tags = "这是controller的描述")
public class HelloController {
@ApiOperation(value = "这是hi接口",
notes = "<span style='color:red;'>描述:</span> 这是hi接口的详细描述")
@GetMapping("hi")
public String hi(){
return "hi";
}
@PostMapping("bye")
@ApiImplicitParams({
//注意:这里的defaultValue是供Swagger的[Try It Out]测试时的默认值
@ApiImplicitParam(name = "param1",value = "param1参数描述",dataType = "String",defaultValue = "1"),
@ApiImplicitParam(name = "param2",value = "param2参数描述",dataType = "String",defaultValue = "2")
})
public String bye(String param1,String param2){
System.out.println(param1 + " " +param2);
return "bye";
}
@PostMapping("goodbye/{param1}/{param2}")
@ApiImplicitParams({
@ApiImplicitParam(name = "param1",value = "param1参数描述",dataType = "String",defaultValue = "1",paramType = "path"),
@ApiImplicitParam(name = "param2",value = "param2参数描述",dataType = "String",defaultValue = "2",paramType = "path")
})
public String goodbye(@PathVariable("param1") String param1, @PathVariable("param2") String param2){
System.out.println(param1 + " " +param2);
return "goodbye";
}
@PostMapping("seeyou")
public String seeyou(@RequestBody MyParams myParams){
return "seeyou";
}
}
页面显示