1. 程式人生 > >spring boot swagger2 釋出restful風格的API

spring boot swagger2 釋出restful風格的API

最近要做前後端徹底分離,正在拆分專案,我負責把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);
    }

效果圖如下