Springboot 中使用Swagger2構建RESTful APIs

變態的問題:在一臺電腦上

context-path 不能是根

這裏設置context

application.properties

server.servlet.context-path=/jk

1、pom.xml

增加

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

2、配置

SwaggerConfig.java
package com.example.demo.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;

/**
 * @author  yujikuan
 */
@EnableSwagger2
@Configuration
public class SwaggerConfig {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Springboot 中使用Swagger2構建RESTful APIs")
                .termsOfServiceUrl("https://blog.csdn.net/qq_26229005/article/details/103843497")
                .description("springmvc swagger2")
                .contact(new Contact("yujikuan", "https://blog.csdn.net/qq_26229005/article/details/103843497", "[email protected]"))
                .version("1.1")
                .build();
    }
}

 

Controller
package com.example.demo.controller;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;


@RestController
@RequestMapping("/api")
@Api(value = "api接口", description="用戶相關操作")
@Slf4j
public class ApiController {


    @RequestMapping(value = "/user")
    @ApiOperation(value = "用戶查詢服務", notes = "根據傳過來的user_id來查詢用戶")
    @ResponseBody
//註釋聲明 RequestParam
    public User getUserById(@ApiParam(value = "用戶id") @RequestParam String user_id){
       /* User user =  userService.getUserById(user_id);
        map.put("user", user);*/
       log.info("userid="+user_id);
        User user=new User();
         user.setUser_id(user_id);
         user.setUser_name("于吉寬");
         user.setPassword("dsfsfs@ddd");
        return user;
    }

}

 

實體類型

package com.example.demo.controller;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

@ApiModel(value = "用戶")

public @Data  class User {
    private String user_id;

    @ApiModelProperty(value = "用戶名")
    private String user_name;

    @ApiModelProperty(value = "密碼")
    private String password;
}

最後啓動項目

訪問http://localhost:8080/jk/swagger-ui.html#/

如果報curl錯誤,請https://curl.haxx.se/download.html#Win64 下載,配置相關環境變量既可。

參考

http://springfox.github.io/springfox/docs/current/#introduction

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章