SpringBoot配置Swagger实例(POST接收json参数)

工程目录结构:

首先,引入jar包,只需要以下两个即可

1<dependency> 2 <groupId>io.springfox</groupId> 3 <artifactId>springfox-swagger2</artifactId> 4 <version>2.4.0</version> 5</dependency> 6 7<dependency> 8 <groupId>io.springfox</groupId> 9 <artifactId>springfox-swagger-ui</artifactId> 10 <version>2.4.0</version> 11</dependency>

1、Swagger配置类

1package com.mark.swagger; 2 3import org.springframework.context.annotation.Bean; 4import org.springframework.context.annotation.Configuration; 5import springfox.documentation.builders.ApiInfoBuilder; 6import springfox.documentation.builders.PathSelectors; 7import springfox.documentation.builders.RequestHandlerSelectors; 8import springfox.documentation.service.ApiInfo; 9import springfox.documentation.service.Contact; 10import springfox.documentation.spi.DocumentationType; 11import springfox.documentation.spring.web.plugins.Docket; 12import springfox.documentation.swagger2.annotations.EnableSwagger2; 13 14@Configuration 15@EnableSwagger2 16public class Swagger2 { 17//swagger2的配置文件,这里可以配置swagger2的一些基本的内容,比如扫描的包等等 18 @Bean 19 public Docket createRestApi() { 20 return new Docket(DocumentationType.SWAGGER_2) 21 .apiInfo(apiInfo()) 22 .select() 23 //为当前包路径 24 .apis(RequestHandlerSelectors.basePackage("com.mark")) 25 .paths(PathSelectors.any()) 26 .build(); 27 } 28 //构建 api文档的详细信息函数,注意这里的注解引用的是哪个 29 private ApiInfo apiInfo() { 30 return new ApiInfoBuilder() 31 //页面标题 32 .title("Spring Boot 测试使用 Swagger2 构建RESTful API") 33 //创建人 34 .contact(new Contact("WangXiaodong", "http://www.baidu.com", "")) 35 //版本号 36 .version("1.0") 37 //描述 38 .description("API 描述") 39 .build(); 40 } 41 42 43}

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

 2、实体类

接口接收入参为json串,需由实体类转化为对应key-value

1package com.mark.swagger; 2 3public class User { 4 5 private String name; 6 7 public String getName() { 8 return name; 9 } 10 11 public void setName(String name) { 12 this.name = name; 13 } 14 15 @Override 16 public String toString() { 17 return "User [name=" + name + "]"; 18 } 19 20}

3、接口所在Controller

1package com.mark.swagger; 2 3import org.springframework.web.bind.annotation.RequestBody; 4import org.springframework.web.bind.annotation.RequestMapping; 5import org.springframework.web.bind.annotation.RequestMethod; 6import org.springframework.web.bind.annotation.ResponseBody; 7import org.springframework.web.bind.annotation.RestController; 8import io.swagger.annotations.Api; 9import io.swagger.annotations.ApiImplicitParam; 10import io.swagger.annotations.ApiImplicitParams; 11import io.swagger.annotations.ApiOperation; 12 13@RestController 14@RequestMapping("/hello") 15@Api(value = "/hello") 16public class SwagController { 17 18 19 @ApiOperation(value = "查询用户", notes = "查询用户") 20 @ApiImplicitParams({@ApiImplicitParam(name = "name", value = "姓名", required = true, dataType = "String"), 21 }) 22 @RequestMapping(value = "/getName",method=RequestMethod.POST) 23 @ResponseBody 24 public User getName(@RequestBody User name) { 25 System.out.println(name.toString()); 26 return name; 27 } 28 29 30}

 通过@RequestBody注解,将接收到的json参数,转化为实体类User对应的值

 4、SpringBoot启动类

 虽然大家都知道,还是来一个吧

1package com.mark; 2 3import org.springframework.boot.SpringApplication; 4import org.springframework.boot.autoconfigure.SpringBootApplication; 5import springfox.documentation.swagger2.annotations.EnableSwagger2; 6@SpringBootApplication 7public class Application { 8 9 public static void main(String[] args) { 10 SpringApplication.run(Application.class, args); 11 } 12 13}

测试

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

如下所示:出现刚才写的接口

 

点击SHow/Hide

1、/hello/getName:路径

2、Model:入参json对应的model,就是上面的User

3、填写要传入的参数(json格式)

传入参数:

1{ 2 "name": "WangXiaodong" 3}

 测试结果:

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )