一、springboot与swagger的集成使用

一、背景介绍

1.Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。在项目开发中,根据业务代码自动生成API文档,给前端提供在线测试,自动显示JSON格式,方便了后端与前端的沟通与调试成本。

2.Swagger有一个缺点就是侵入性模式,必须配置在具体的代码里。

二、导入依赖

1.pom.xml

<dependency>
	<groupId>io.springfox</groupId>
	<artifactId>springfox-swagger2</artifactId>
    <version>2.2.2</version>
</dependency>
<dependency>
	<groupId>io.springfox</groupId>
	<artifactId>springfox-swagger-ui</artifactId>
	<version>2.2.2</version>
</dependency>
<dependency>
	<groupId>org.codehaus.jackson</groupId>
	<artifactId>jackson-core-asl</artifactId>
	<version>1.9.13</version>
</dependency>

2.注释:

2.1.第一个是API获取的包

2.2.第二是官方给出的一个ui界面,这个界面可以自定义,默认是官方的

2.3.第三个是测试数据以JSON格式返回的依赖包

三、项目结构图

1.结构图

四、测试代码

1.swagger的配置类

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder().title("API接口文档")
                .description("用户信息管理")
                .version("1.0.0")
                .build();
    }
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.example.fileput.controller")) //这里写的是API接口所在的包位置
                .paths(PathSelectors.any())
                .build();
    }
}

2.controller

@RestController
@RequestMapping("/user")
@Api(value = "用户信息管理")
public class UserController {
    UserDao userDao;
    @RequestMapping(method = RequestMethod.POST,value = "/userById")
    @ApiOperation(value = "获取用户信息", notes = "通过用户ID获取用户信息")
    public Object findById(@ApiParam(value = "用户ID",required = true) int id){
        return userDao.findById(id);
    }
    @RequestMapping(method = RequestMethod.POST,value = "/userByName")
    @ApiOperation(value = "获取用户信息", notes = "通过用户姓名获取用户信息")
    public Object findByName(@ApiParam(value = "用户姓名",required = true) String  name){
        return userDao.findByName(name);
    }
}

3.dao

public interface UserDao {
    User findById(Integer id);
    User findByName(String name);
}

4.pojo

public class User {
    int id;//用户ID
    String name;//姓名
    public void setId(int id){

        this.id=id;
    }
    public int getId(){

        return id;
    }
    public void setName(String name){
        this.name=name;
    }
    public String getName(){

        return name;
    }
}

5.application.properties

springfox.documentation.swagger.v2.path= /api-docs

在配置文件中,application.properties中声明:

springfox.documentation.swagger.v2.path: /api-docs

这个path就是json的访问request mapping.可以自定义,防止与自身代码冲突。

五、测试结果

1.API doc的显示路由是:http://localhost:8080/swagger-ui.html

六、结束

这就是对这个东西的总结,希望能帮助到你们!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值