SpringBoot配置Swagger實例(POST接收json參數)

工程目錄結構:html

 

 

首先,引入jar包,只須要如下兩個便可web

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.4.0</version>
</dependency>

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.4.0</version>
</dependency>

 

一、Swagger配置類spring

package com.mark.swagger; 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 Swagger2 { //swagger2的配置文件,這裏能夠配置swagger2的一些基本的內容,好比掃描的包等等
 @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() //爲當前包路徑
                .apis(RequestHandlerSelectors.basePackage("com.mark")) .paths(PathSelectors.any()) .build(); } //構建 api文檔的詳細信息函數,注意這裏的註解引用的是哪一個
    private ApiInfo apiInfo() { return new ApiInfoBuilder() //頁面標題
                .title("Spring Boot 測試使用 Swagger2 構建RESTful API") //建立人
                .contact(new Contact("WangXiaodong", "http://www.baidu.com", "")) //版本號
                .version("1.0") //描述
                .description("API 描述") .build(); } }

注意修改:basePackage("接口所在controller的包路徑")json

 

 二、實體類api

 

接口接收入參爲json串,需由實體類轉化爲對應key-valueapp

package com.mark.swagger; public class User { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "User [name=" + name + "]"; } }

 

三、接口所在Controlleride

 

package com.mark.swagger; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; @RestController @RequestMapping("/hello") @Api(value = "/hello") public class SwagController { @ApiOperation(value = "查詢用戶", notes = "查詢用戶") @ApiImplicitParams({@ApiImplicitParam(name = "name", value = "姓名", required = true, dataType = "String"), }) @RequestMapping(value = "/getName",method=RequestMethod.POST) @ResponseBody public User getName(@RequestBody User name) { System.out.println(name.toString()); return name; } }

 

 經過@RequestBody註解,將接收到的json參數,轉化爲實體類User對應的值函數

 

 四、SpringBoot啓動類測試

 雖然你們都知道,仍是來一個吧ui

package com.mark; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import springfox.documentation.swagger2.annotations.EnableSwagger2;
@SpringBootApplication
public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }

 

 

 測試

輸入地址:localhost:8080/swagger-ui.html

 

以下所示:出現剛纔寫的接口

 

 

 點擊SHow/Hide

一、/hello/getName:路徑

二、Model:入參json對應的model,就是上面的User

三、填寫要傳入的參數(json格式)

 

 

 

傳入參數:

{ "name": "WangXiaodong" }

 

 測試結果:

 

相關文章
相關標籤/搜索