使用Swagger和SpringFox文档化SpringBootRESTAPI

栏目: 后端 · 发布时间: 6年前

内容简介: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和SpringFox文档化SpringBootRESTAPI

这样就会为你的模型对象自动生成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

显示如下:

使用Swagger和SpringFox文档化SpringBootRESTAPI

上面一个“商品”是ProductController的方法createProduct是有详细中文说明,下面一个显示“product-controller”是createCategory方法,虽然这个方法没有任何Swagger2元注释,但是也自动生成了,名称直接为REST控制器名称。

重要的是,填入提交数据,可以类似postman那样对你的REST API进行数据提交,这样前端小伙伴再也不抱怨你的API不能用了:

使用Swagger和SpringFox文档化SpringBootRESTAPI

访问

http://localhost:8080/v2/api-docs

会生成json格式的API说明,能够导入前端mock工具供前端调试编程。

API文档先行还是API编码先行?

#swagger#API

Spring Boot


以上所述就是小编给大家介绍的《使用Swagger和SpringFox文档化SpringBootRESTAPI》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

敏捷估计与规划

敏捷估计与规划

[美] Mike Cohn / 宋锐 / 清华大学出版社 / 2007-7 / 39.90元

《敏捷估计与规划》一书为对敏捷项目进行估计与规划提供了权威实际的指导方针。在本书中,敏捷联盟的共同创始人Mike Cohn讨论了敏捷估计与规划的思想,并使用现实的例子与案例分析向您详细地展示了如何完成工作。本书清晰地阐述了有关的概念,并引导读者逐步认识到下列一些问题的答案:我们要构建什么?它的规模有多大?需要在什么时候完成?到那个时候我们到底能完成多少?您首先会认识到优秀的计划由哪些东西组成,接着......一起来看看 《敏捷估计与规划》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

html转js在线工具
html转js在线工具

html转js在线工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具