内容简介:REST API非常重要。它是一个公共接口,其他模块、应用程序或开发人员需要使用它。拥有适当文档的界面以避免混淆并使其始终保持最新是至关重要的。最受欢迎的API文档规范之一是OpenApi,以前称为Swagger。它允许您使用JSON或YAML元数据描述API的属性。它还提供了一个Web UI,它可以将元数据转换为一个很好的HTML文档。此外,通过该UI,您不仅可以浏览有关API端点的信息,还可以将UI用作REST客户端 - 您可以调用任何端点,指定要发送的数据并检查响应。它非常方便。手动编写此类文档并在
REST API非常重要。它是一个公共接口,其他模块、应用程序或开发人员需要使用它。拥有适当文档的界面以避免混淆并使其始终保持最新是至关重要的。
最受欢迎的API文档规范之一是OpenApi,以前称为Swagger。它允许您使用JSON或YAML元数据描述API的属性。它还提供了一个Web UI,它可以将元数据转换为一个很好的HTML文档。此外,通过该UI,您不仅可以浏览有关API端点的信息,还可以将UI用作REST客户端 - 您可以调用任何端点,指定要发送的数据并检查响应。它非常方便。
手动编写此类文档并在代码更改时保持更新是不现实的。这就是SpringFox发挥作用的地方。它是Spring Framework的Swagger集成。它可以自动检查您的类,检测控制器,它们的方法,它们使用的模型类以及它们映射到的URL。没有任何手写文档,只需检查应用程序中的类,它就可以生成大量有关API的信息。多么酷啊?最重要的是,每当您进行更改时,它们都会反映在文档中。
添加依赖:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
<scope>compile</scope>
</dependency>
激活Swagger2:
@SpringBootApplication
@EnableSwagger2
public class ProductApplication {
public static void main(String[] args) {
SpringApplication.run(ProductApplication.class, args);
}
}
Rest控制器:
@RestController
public class ProductController {
@Autowired
private ProductService productService;
@ApiOperation(value = "添加商品", nickname = "createProduct", notes = "备注", tags
= {"商品",})
@ApiResponses(value = {
@ApiResponse(code = 201, message = "创建成功!")})
@PostMapping(value = "/product")
public void createProduct(@ApiParam(value = "添加商品") @Valid @RequestBody
Product body) {
productService.create(body);
}
@PostMapping(value = "/category")
public void createCategory(@RequestBody
Category body) {
//productService.create(body);
}
}
createProduct是有详细中文说明,createCategory是默认的,两者显示API有所不同:
注意,Product作为输入参数,需要进行API定义,在Idea中有一个SwaggerGen插件,安装好后,在Product类中右键选择generate,会有generate swagger选项:
这样就会为你的模型对象自动生成swagger注解:
@ApiModel(value = "商品", description = "用于实现商品管理")
@Entity
public class Product {
@ApiModelProperty(value = "目录")
@OneToOne
public Category m_Category;
@ApiModelProperty(value = "标识")
@javax.persistence.Id
private String Id;
@ApiModelProperty(value = "名称")
private String name;
启动Spring Boot应用,访问:
http://localhost:8080/swagger-ui.html
显示如下:
上面一个“商品”是ProductController的方法createProduct是有详细中文说明,下面一个显示“product-controller”是createCategory方法,虽然这个方法没有任何Swagger2元注释,但是也自动生成了,名称直接为REST控制器名称。
重要的是,填入提交数据,可以类似postman那样对你的REST API进行数据提交,这样前端小伙伴再也不抱怨你的API不能用了:
访问
http://localhost:8080/v2/api-docs
会生成json格式的API说明,能够导入前端mock工具供前端调试编程。
API文档先行还是API编码先行?
#swagger#API
Spring Boot
以上所述就是小编给大家介绍的《使用Swagger和SpringFox文档化SpringBootRESTAPI》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Blockchain Basics
Daniel Drescher / Apress / 2017-3-16 / USD 20.99
In 25 concise steps, you will learn the basics of blockchain technology. No mathematical formulas, program code, or computer science jargon are used. No previous knowledge in computer science, mathema......一起来看看 《Blockchain Basics》 这本书的介绍吧!