SpringBoot結合Swagger2自動生成api文檔

首先在pom.xml中添加以下依賴,其它web,lombok等依賴自行添加

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

SwaggerConfig.java是swagger2的配置類

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("cn.niit.controller"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Spring Boot中使用Swagger2")
                .description("首次嘗試自動生成api文檔爲後期的先後端分離開發作準備")
                .termsOfServiceUrl("https://www.jianshu.com/u/2f60beddf923")
                .contact("WEN")
                .version("1.0")
                .build();
    }
}

實體類User.javajavascript

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    public User(String userName, String password) {
        this.userName = userName;
        this.password = password;
    }

    private Integer id;
    private String userName;
    private String password;
}

新建一個控制類UserController.java,類下有個方法getAllUserhtml

@RestController
@Api(description = "用戶管理")
@RequestMapping(value = "/hello",produces = APPLICATION_JSON_VALUE)
public class UserController {

    List<User>lists=new ArrayList<>();

    @GetMapping(value ="getAllUser" )
    @ApiOperation(value = "用戶列表",notes = "查詢全部已註冊過的用戶詳細信息")
    public List<User> getAllUser()
    {
    lists.add(new User("wen","999"));
    lists.add(new User(2,"qian","666"));
    return lists;
    }
}

點擊localhost:8888/swagger-ui.html(我在application.propertise中的server.port=8888)

在類中再添加一個方法addUser

@PostMapping(value = "addUser")
    public User addUser(User user)
    {
        return user;
    }

實體類User.java的屬性上添加以下註解java

@ApiModelProperty(value = "用戶ID")
    private Integer id;
    @ApiModelProperty(value = "用戶名")
    private String userName;
    @ApiModelProperty(value = "密碼")
    private String password;

建立用戶時有些字段咱們並不須要,能夠加入以下註解git

@ApiModelProperty(hidden = true)

在類中再添加一個根據用戶id查詢用戶的方法

@GetMapping(value = "getUserById/{id}")
    public User getUserById(@ApiParam(value = "用戶ID")@PathVariable(value = "id")String id)
    {
        return new User(id,"步驚雲","passwordjava");
    }

漢化成中文文檔

在swagger相關的jar包github

把META-INF這個包複製到你當前項目的resources目錄下 這些是關鍵,剩下多餘的包可自行刪除web

在swagger-ui.html的<head>部分添加以下代碼spring

<!--國際化操做:選擇中文版 -->
  <script src='webjars/springfox-swagger-ui/lang/translator.js' type='text/javascript'></script>
  <script src='webjars/springfox-swagger-ui/lang/zh-cn.js' type='text/javascript'></script>

漢化完成,咱們也能夠在zh_cn.js中自定義中文名稱後端

另外一種生成文檔的方式請參見api

參考 github代碼 我的網站springboot

相關文章
相關標籤/搜索