swagger

1、简介
项目使用springmvc+vue.js,最开始使用文档进行前后台的restApi的约定,后来发现接口太多,而且开发过程中必然要对接口进行变动。
Swagger可以充当前后端交流的重要桥梁,方便快捷,很实用。

2、集成

pom依赖

        <dependency>
            <groupId>com.mangofactory</groupId>
            <artifactId>swagger-springmvc</artifactId>
            <version>0.9.5</version>
        </dependency>

applicationContext.xml

<mvc:annotation-driven/>
    <bean class="com.mangofactory.swagger.configuration.SpringSwaggerConfig" />

需要创建一个swagger配置类

@Configuration
@EnableWebMvc
@EnableSwagger
@ComponentScan("com.controller")
public class SwaggerConfig {

    private SpringSwaggerConfig springSwaggerConfig;

    @Autowired
    public void setSpringSwaggerConfig(SpringSwaggerConfig springSwaggerConfig) {
        this.springSwaggerConfig = springSwaggerConfig;
    }

    @Bean
    public SwaggerSpringMvcPlugin customImplementation() {
        return new SwaggerSpringMvcPlugin(this.springSwaggerConfig)
                                        .apiInfo(apiInfo())
                                        .includePatterns(".*?");
    }

    private ApiInfo apiInfo() {
        ApiInfo apiInfo = new ApiInfo(
                                "AAA RESTful API",
                                "AAA RESTful API 说明文档",
                                "服务目前接入终端有:Java client",
                                "aaa@qq.com",
                                "AAA",
                                "www.aaa.com"
                            );

        return apiInfo;
    }
}

controller代码的配置如下。
@Api表示一个表示一个开放的API,可以通过description简要描述该API的功能;
@ApiOperation表示对Api的操作,可以通过value,notes描述该操作的作用;

@Api(value = "数据源", description = "数据源相关api")
@Controller
@CrossOrigin(allowedHeaders="*", allowCredentials="true")
@RequestMapping("/aaa")
public class AAAController{

    @ApiOperation(value = "AAA题目", notes = "获取AAA实例")
    @RequestMapping(value = "/bbb/ccc", method = RequestMethod.GET)
    @ResponseBody
    public void getAAA(HttpServletResponse response) {
    }
}

某些post方法需要传body到后台,例如

@RequestMapping(value = "/aaa", method = RequestMethod.POST)
    @ResponseBody
    public void addAAA(HttpServletResponse response, @RequestBody CreateParam model) {
    ...

可以对model做标注

@ApiModel(value = "创建数据需要的参数")
public class CreateParam {
    @ApiModelProperty(value = "名字")
    private String name;

最终效果在
数据类型-》model中可以看到

集成Swagger-UI,从github上下载(https://github.com/wordnik/swagger-ui),并将dist目录下的内容拷贝到项目中webapp目录下即可。
这里写图片描述

修改index.html, 把Swagger UI对象中的URL替换为自己的API路径。

window.swaggerUi = new SwaggerUi({
        url: "/包名/api-doc",

最后访问“包名/api-doc/index.html”即可访问swagger主页,包含所有controller的各个方法

### 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]。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值