OpenAPI
随着互联网技术的发展,现在的网站架构基本都由原来的后端道染,变成了:前端渲染、前后端分离的形态,而且前端技术和后端技术在各自的道路上越走越远。前端和后端的唯一联系, 变成了API接口; API文档变成了前后端开发人员联系的纽带,变得越来越重要。
OpenAPI规范(OpenAPI Specification简称OAS)是Linux基金会的一个项目,试图通过定义一种用来描述API格式或API定义的语言,来规范RESTful服务开发过程。
Swagger
OpenAPI是一个编写API文档的规范,然而如果手动去编写OpenAPI规范的文档,是非常麻烦的。而Swagger就是一个实现了OpenAPI规范的工具集。
引用
<dependency>
<groundId>io.springfox</groundId>
<artifactId>springfox-swagger2</artifactId>
</dependency>
<dependency>
<groundId>io.springfox</groundId>
<artifactId>springfox-swagger-ui</artifactId>
</dependency>
配置
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket (DocumentationType. SWAGGER_2)
.host ("loealhost:8089")
.apiInfo (apiInfo())
.select()
.apis (RequestHandlerSelectors. basePackare("com.leyou.order.controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
. title("乐优商城订单系续")
.description("乐优商城订单系统接口文档")
.version("1.0")
.build();
}
}
Controller层
@RestController
@RequestMapping("order")
@Api("订单服务接口")
public class OrderController{
@PostMapping
@ApiOperation(value="创建订单接口,返回订单编号",notes="创建订单")
public {……}
@GetMapping("list")
@ApiOperation(value ="分页查询当前用户订单。并且可以根据订单状去过油",notes ="分页查湖当前用户订单")
@ApiImplicitParams((
@ApiImplicitParams(name = "page", value ="当前页",defaultValue = "1", type ="Integer"),
@ApiImplicitParams(name = "rows", value ="每页大小”,defaultValue =“5",type = "Integer"),
@ApiImplicitParams(name="status", value ="订单状态: 1末付款,2己付款术发货,3已发货未确认。4己确认未评价,5交易关闭"
})
@ApiResponses((
@ApiResponses(code = 200, message ="订单的分页结果"),
@ApiResponses(code = 404,
message ="没有查询到结果"),
@ApiResponses(code = 500, message ="查询失败")
})
public {……}
}