Swagger

1.什么是Swagger

OpenAPI规范(OpenAPI Specification 简称OAS)是Linux基金会的一个项目,试图通过定义一种用来描述API格式或API定义的语言,来规范RESTful服务开发过程,目前版本是V3.0,并且已经发布并开源在github上。

Swagger是符合OpenAPI规范的接口开发工具,支持从设计和文档到测试和部署的整个API生命周 期的开发。 (https://swagger.io/)

2.Swagger常用注解

Java类中添加Swagger的注解即可生成Swagger接口,常用Swagger注解如下:

@Api:修饰整个类,描述Controller的作用 

@ApiOperation:描述一个类的一个方法,或者说一个接口

@ApiParam:单个参数描述 

@ApiModel:用对象来接收参数 

@ApiModelProperty:用对象接收参数时,描述对象的一个字段 

@ApiResponse:HTTP响应其中1个描述 

@ApiResponses:HTTP响应整体描述 

@ApiIgnore:使用该注解忽略这个API 

@ApiError :发生错误返回的信息 

@ApiImplicitParam:一个请求参数

@ApiImplicitParams:多个请求参数

3.Swagger生成接口文档的工作原理

1、系统启动,扫描到api工程中的Swagger2Confifiguration

2、在此类中指定了包路径com.xuecheng,找到在此包下及子包下标记有@RestController注解的controller

3、根据controller类中的Swagger注解生成接口文档。

4.Swagger应用举例

1)先定义一个配置类

@Configuration
@EnableSwagger2
public class Swagger2Configuration {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.xuecheng"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("朱大帅网api文档")
                .description("朱大帅网api文档")
//                .termsOfServiceUrl("/")
                .version("1.0")
                .build();
    }

}

2)修改接口工程中页面查询接口,添加Swagger注解

@RestController
@RequestMapping("/cms/page")
@Api(value="cms页面管理接口",description = "cms页面管理接口,提供页面的增、删、改、查")
public class CmsPageController implements CmsPageControllerApi {

    @Autowired
    PageService pageService;

    @Override
    @GetMapping("/list/{page}/{size}")
    @ApiOperation("分页查询页面列表")
    @ApiImplicitParams({
            @ApiImplicitParam(name="page",value = "页 码",required=true,paramType="path",dataType="int"),
            @ApiImplicitParam(name="size",value = "每页记录 数",required=true,paramType="path",dataType="int")
    })
    public QueryResponseResult findList(@PathVariable("page") int page, @PathVariable("size")int size, QueryPageRequest queryPageRequest) {
        return pageService.findList(page,size,queryPageRequest);
    }
}

3)实体类中使用注解 ApiModelProperty 对属性注释

@Data
public class QueryPageRequest extends RequestData {
    //站点id
    @ApiModelProperty("站点id")
    private String siteId;
    //页面ID
    @ApiModelProperty("页面ID")
    private String pageId;
    //页面名称
    private String pageName;
    //别名
    private String pageAliase;
    //模版id
    private String templateId;
}

4)测试

访问路径:http://localhost:31001/swagger-ui.html(你本地项目的访问路径加swagger后缀)

结果:

### Swagger 技术概述 Swagger 是一种广泛使用的工具集,旨在帮助开发者设计、构建和记录 RESTful API。其核心组件包括 Swagger Editor、Swagger Codegen 和 Swagger UI,这些工具共同构成了一个强大的生态系统,支持从 API 文档的创建到功能测试的整个生命周期。 #### Swagger 的主要功能模块 - **Swagger Editor**: 提供了一个基于浏览器的编辑环境,允许用户通过 YAML 或 JSON 语法编写 API 定义[^1]。 - **Swagger Codegen**: 这一工具能够根据已有的 API 定义生成多种编程语言的客户端和服务端代码[^4]。 - **Swagger UI**: 自动化生成交互式的 API 文档界面,使得开发人员可以轻松查看并测试 API 功能而无需额外配置[^1]。 #### 工作机制解析 当项目引入 Swagger 支持后,在应用启动阶段会自动扫描指定路径下的控制器类(通常带有 `@RestController` 注解)。随后依据这些类及其方法上的注解信息动态生成对应的 API 文档内容[^2]。这种自动化过程极大地减少了手动维护文档的工作量,并确保了文档与实际实现之间的一致性。 #### 实际应用场景举例 下面展示如何利用 Spring Boot 结合 Swagger 创建简单的 RESTful 接口: ```java import io.swagger.annotations.Api; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @Api(tags = "示例接口") @RequestMapping("/example") @RestController public class ExampleController { @GetMapping("/hello") public String sayHello() { return "Hello, Swagger!"; } } ``` 上述代码片段展示了在一个典型的 Java 应用程序中集成 Swagger 所需的基本设置。通过添加必要的依赖项以及适当配置之后即可启用该特性[^3]。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值