spring boot swagger2 釋出restful風格的API
阿新 • • 發佈:2018-12-20
最近要做前後端徹底分離,正在拆分專案,我負責把API提供出來給前端
首先新增pom依賴:
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.7.0</version> </dependency>
1、將swagger-ui中的介面配置至spring-boot環境
spring-boot有自己的一套web端攔截機制,若需要看到swagger釋出的api文件介面,需要做一些特殊的配置,將springfox-swagger-ui包中的ui介面暴露給spring-boot資源環境。
swagger配置
import io.swagger.annotations.ApiOperation; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.RequestHandlerSelectors; 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 swaggerSpringMvcPlugin() { return new Docket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)).build(); } }
2、API文件編寫示例
可以儘可能在controller中指定前端ajax訪問的方式,否則生成的API會生成全部的方式的介面,顯得非常噁心
@Api(description = "使用者介面") @RequestMapping("/user") @RestController public class SysUserController extends BaseController { @Autowired private SysUserService sysUserService; @Autowired private SysUserRoleService sysUserRoleService; /** * 使用者列表 * * @param page * @return */ @ApiOperation(value = "使用者列表", notes = "分頁查詢使用者資訊") @RequestMapping(value = "list",method = RequestMethod.GET) @RequiresPermissions("sys:user:list") public PageData list(Page page) { return sysUserService.getUserList(page); }
效果圖如下