Springboot 和Swagger 整合

springboot这里,我不做讲解。

swagger产生背景

  在软件开发行业,管理文档是件头疼的事。不是文档难于撰写,而是文档难于维护,因为需求与代码会经常变动,尤其在采用敏捷软件开发模式的系统中。好的工具能够提高团队沟通效率,保证系统质量以及缩短项目的交付周期。反之,差的管理工具,会严重影响沟通效率,增加系统bug数量,并且延误产品的上线日期。所以选用合理与合适的软件开发文档管理工具十分重要,真正让开发者做到“高高兴兴地把活干完,早点回家吃饭打游戏”。

   随着互联网技术的发展,现在的网站架构基本都由原来的后端渲染,变成了:前端渲染、先后端分离的形态,而且前端技术和后端技术在各自的道路上越走越远。 
前端和后端的唯一联系,变成了API接口;API文档变成了前后端开发人员联系的纽带,变得越来越重要,swagger就是一款让你更好的书写API文档的框架。

swagger简介

https://petstore.swagger.io/

https://swagger.io/

Springboot 和Swagger 整合_第1张图片

https://petstore.swagger.io/?_ga=2.213559188.1865753670.1532504182-53638988.1532504182#/

Swagger 是一款目前世界最流行的API管理工具。但目前Swagger已经形成一个生态圈,能够管理API的整个生命周期,从设计、文档到测试与部署。Swagger有几个重要特性:

  • 代码侵入式注解
  • 遵循YAML文档格式
  • 非常适合三端(PC、iOS及Android)的API管理,尤其适合前后端完全分离的架构模式。
  • 减少没有必要的文档,符合敏捷开发理念
  • 功能强大

Swagger拥有众多不同语言和平台的开源实现与工具,主要有:

  • Swagger UI,基于Swagger-compliant API的一套可以展示优美文档的Web应用。
  • Swagger Editor,一款以YAML格式编辑与管理API的工具,同时支持JSON格式的文档描述。
  • Swagger-Core,Swagger的Java/Scala实现,并已集成 JAX-RS (Jersey, Resteasy, CXF...), Servlets与Play Framework。
  • Swagger-JS,Swagger的Javascript版本实现。

 

  • Springboot 和Swagger 整合_第2张图片

实战开干

Springboot 和Swagger 整合_第3张图片

 

swagger注解说明

Springboot 和Swagger 整合_第4张图片

具体代码

User

public class User {

    private  String username;
    private  String password;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

UserService

@Service
public class UserService {
    public User getUser(String username, String password) {
        User use = new User();
        use.setUsername(username);
        use.setPassword(password);
        return use;
    }
}

UserController

@RestController
@RequestMapping("/user")
@Api("userController相关api")
public class UserController {
    @Autowired
    private UserService userService;
    @ApiOperation("获取用户信息")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType="header",name="username",dataType="String",required=true,value="用户的姓名",defaultValue="nishisabi"),
            @ApiImplicitParam(paramType="query",name="password",dataType="String",required=true,value="用户的密码",defaultValue="nishisabi")
    })
    @ApiResponses({
            @ApiResponse(code=400,message="请求参数没填好"),
            @ApiResponse(code=404,message="请求路径没有或页面跳转路径不对")
    })
    @RequestMapping(value="/getUser",method= RequestMethod.GET)
    public User getUser(@RequestHeader("username") String username, @RequestParam("password") String password) {
        return userService.getUser(username,password);
    }
}

pom.xml文件



	4.0.0

	com.ioc
	ioc-swagger
	0.0.1-SNAPSHOT
	jar

	ioc-swagger
	Demo project for Spring Boot

	
		org.springframework.boot
		spring-boot-starter-parent
		2.0.3.RELEASE
		 
	

	
		UTF-8
		UTF-8
		1.8
	

	
		
			org.springframework.boot
			spring-boot-starter
		
		
			io.springfox
			springfox-swagger2
			2.7.0
		
		
			org.springframework.boot
			spring-boot-starter-test
			test
		
		
			io.springfox
			springfox-swagger-ui
			2.7.0
		
		
			org.springframework.boot
			spring-boot-starter-web
		
	

	
		
			
				org.springframework.boot
				spring-boot-maven-plugin
			
		
	

IocSwaggerApplication

/**
 * \引入了一个注解@EnableSwagger2来启动swagger注解。
 * (启动该注解使得用在controller中的swagger注解生效,
 * 覆盖的范围由@ComponentScan的配置来指定,
 * 这里默认指定为根路径”com.xxx.firstboot”下的所有controller)
 */
@EnableSwagger2             //启动swagger注解
public class IocSwaggerApplication {

    public static void main(String[] args) {
        SpringApplication.run(IocSwaggerApplication.class, args);
    }
}

然后启动application类,浏览器访问:http://localhost:8080/swagger-ui.html#/

Springboot 和Swagger 整合_第5张图片

点击接口 user-controller

Springboot 和Swagger 整合_第6张图片

Springboot 和Swagger 整合_第7张图片

 

ok了,溜溜了

你可能感兴趣的:(JAVA~JavaWeb)