1、pom
<!-- 引入 swagger2-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${springfox.version}</version>
<exclusions>
<exclusion>
<groupId>io.swagger</groupId>
<artifactId>swagger-models</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-models</artifactId>
<version>1.5.21</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${springfox.version}</version>
</dependency>
2、配置
package com.dalong.learn.redisjedisdemo01.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.ApiInfo;
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 Swagger2Config {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.dalong.learn.redisjedisdemo01.controlle"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
Contact contact = new Contact("redisjedisdemo01", "", "*@163.com");
return new ApiInfoBuilder()
.title("dalong-redisjedisdemo01")
.description("描述:" +
"<br/>1、所有需要登陆的接口,需要在http请求头加上token参数,在以下接口中不再进行描述。" +
"<br/>2、备注:【由前端定义】,该参数目前仅做保存数据用,后期根据产品规划调整")
.version("1.0")
.contact(contact)
.build();
}
}
3、应用
package com.dalong.learn.redisjedisdemo01.controller; import com.dalong.learn.redisjedisdemo01.service.UserService; import com.dalong.learn.redisjedisdemo01.test.model.User; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Description; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.validation.constraints.NotNull; @Api(tags = "名称:user") @Description("user") @RequestMapping("/user") @Validated @RestController public class UserController { @Autowired private UserService userServiceImpl; @ApiOperation(value="getUserById") @ApiImplicitParams({ @ApiImplicitParam(name = "id",value = "id",required = true,paramType = "query",dataType = "long") }) @PostMapping("/getUserById") public User getUserById(@NotNull Long id){ return userServiceImpl.getUserById(id); } @ApiOperation(value="updateUserById") @ApiImplicitParams({ @ApiImplicitParam(name = "id",value = "id",required = true,paramType = "query",dataType = "long"), @ApiImplicitParam(name = "name",value = "name",required = true,paramType = "query",dataType = "String"), @ApiImplicitParam(name = "age",value = "age",required = true,paramType = "query",dataType = "int"), @ApiImplicitParam(name = "email",value = "email",required = true,paramType = "query",dataType = "long") }) @PostMapping("/updateUserById") public Boolean updateUserById(User user){ return userServiceImpl.updateUserById(user); } @ApiOperation(value="deleteUserById") @ApiImplicitParams({ @ApiImplicitParam(name = "id",value = "id",required = true,paramType = "query",dataType = "long") }) @PostMapping("/deleteUserById") public Boolean deleteUserById(Long id){ return userServiceImpl.deleteUserById(id); } @ApiOperation(value="createUser") @ApiImplicitParams({ @ApiImplicitParam(name = "name",value = "name",required = true,paramType = "query",dataType = "String"), @ApiImplicitParam(name = "age",value = "age",required = true,paramType = "query",dataType = "int"), @ApiImplicitParam(name = "email",value = "email",required = true,paramType = "query",dataType = "long") }) @PostMapping("/createUser") public Boolean createUser(User user){ return userServiceImpl.createUser(user); } }