如何使用Springfox Swagger生成REST接口文档

x33g5p2x  于2022-10-04 转载在 Spring  
字(4.4k)|赞(0)|评价(0)|浏览(292)

Springfox Swagger是一个有用的工具,可以从RESTful服务代码中生成Swagger文档。正如你在本教程中所看到的,其实只需在你的Spring Boot项目中添加一个配置类,就可以完成了!

Swagger UI最新文章

我们的网站上有一个最新的资源,用于使用由Spring OpenAPI库支持的Swagger UI。
我们建议你看一下它。 针对Spring Boot用户的Swagger UI教程

你可以从任何REST项目开始,比如我们的Spring Boot Hello World REST服务。

为了使文档自动生成,我们需要包含一个@Configuration Bean,并标记为**@EnableSwagger2**。

package com.example.demorest;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
public class ConfigSwagger {
  public class SwaggerConfig {
    @Bean
    public Docket api() {
      return new Docket(DocumentationType.SWAGGER_2)
          .select()
          .apis(RequestHandlerSelectors.any())
          .paths(PathSelectors.any())
          .build();
    }
  }
}

在这个Bean中。

@Configuration 。定义了一个Spring配置文件

@EnableSwagger2 。启用Swagger支持的注解

Docket 。这是一个简单的构建器类,用于配置使用Swagger Spring MVC框架生成的Swagger文档。通过使用RequestHandlerSelectors.any()).paths(PathSelectors.any())。包括文档中的所有API和路径

为了编译该项目,你必须添加Swagger2的依赖项。

<?xml version="1.0" encoding="UTF-8"?><project>
   <dependency>
       	
      <groupId>io.springfox</groupId>
       	
      <artifactId>springfox-swagger2</artifactId>
       	
      <version>2.9.2</version>
       
   </dependency>
    
</project>

当我们执行主类时,我们可以启动API文档的URL ( http://localhost:8080/v2/api-docs )。下面的截图显示了一些生成的文档。下面是产生的JSON的摘录。

{      "swagger": "2.0",     "info": {         "description": "Api Documentation",         "version": "1.0",         "title": "Api Documentation",         "termsOfService": "urn:tos",         "contact": { },         "license": {             "name": "Apache 2.0",             "url": "http://www.apache.org/licenses/LICENSE-2.0"         }     },     "host": "localhost:8080",     "basePath": "/",     "tags": [         {             "name": "customer-controller",             "description": "Customer Controller"         },         {             "name": "basic-error-controller",             "description": "Basic Error Controller"         }     ],     "paths": {         "/": {             "get": {                 "tags": [                     "customer-controller"                 ],                 "summary": "findAll",                 "operationId": "findAllUsingGET",                 "consumes": [                     "application/json"                 ],                 "produces": [                     "*/*"                 ],                 "responses": {                     "200": {                         "description": "OK",                         "schema": {                             "type": "array",                             "items": {                                 "$ref": "#/definitions/Customer"                             }                         }                     },                     "401": {                         "description": "Unauthorized"                     },                     "403": {                         "description": "Forbidden"                     },                     "404": {                         "description": "Not Found"                     }                 }             },             "head": {                 "tags": [                     "customer-controller"                 ],                 "summary": "findAll",                 "operationId": "findAllUsingHEAD",                 "consumes": [                     "application/json"                 ],                 "produces": [                     "*/*"                 ],                 "responses": {                     "200": {                         "description": "OK",                         "schema": {                             "type": "array",                             "items": {                                 "$ref": "#/definitions/Customer"                             }                         }                     },                     "204": {                         "description": "No Content"                     },                     "401": {                         "description": "Unauthorized"                     },                     "403": {                         "description": "Forbidden"                     }                 }             },             "post": {                 "tags": [                     "customer-controller"                 ],                 "summary": "findAll",                 "operationId": "findAllUsingPOST",                 "consumes": [                     "application/json"                 ],                 "produces": [                     "*/*"                 ],                 "responses": {                     "200": {                         "description": "OK",                         "schema": {                             "type": "array",                             "items": {                                 "$ref": "#/definitions/Customer"                             }                         }                     },                     "201": {                         "description": "Created"                     },                     "401": {                         "description": "Unauthorized"                     },                     "403": {                         "description": "Forbidden"                     },                     "404": {                         "description": "Not Found"                     }                 }             },

很好!你刚刚丰富了你的R&A系统。你刚刚用Swagger2丰富了你的REST服务文档。

相关文章

微信公众号

最新文章

更多