swager2

概述

通过注解,快速生成api文档(类似java的doc)

使用

依赖

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.2</version>
</dependency>

配置类

/**
 * Swagger2配置信息
 */
@Configuration
@EnableSwagger2
public class Swagger2Config {

    @Bean
    public Docket webApiConfig(){

        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("webApi")
                .apiInfo(webApiInfo())
                .select()
                //只显示api路径下的页面
                .paths(Predicates.and(PathSelectors.regex("/api/.*")))
                .build();

    }

    @Bean
    public Docket adminApiConfig(){

        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("adminApi")
                .apiInfo(adminApiInfo())
                .select()
                //只显示admin路径下的页面
                .paths(Predicates.and(PathSelectors.regex("/admin/.*")))
                .build();

    }

    private ApiInfo webApiInfo(){

        return new ApiInfoBuilder()
                .title("网站-API文档")
                .description("本文档描述了网站微服务接口定义")
                .version("1.0")
                .contact(new Contact("goku", "http://goku.com", "2356498584@qq.com"))
                .build();
    }

    private ApiInfo adminApiInfo(){

        return new ApiInfoBuilder()
                .title("后台管理系统-API文档")
                .description("本文档描述了后台管理系统微服务接口定义")
                .version("1.0")
                .contact(new Contact("goku", "http://goku.com", "2356498584@qq.com"))
                .build();
    }

}

swager2可视化访问地址

常用注解

  • @Api:描述类信息(controller)

    • tags:“说明该类的作用”
  • @ ApiOperation:描述接口、方法

    • value=“说明方法的作用”
    • notes=“方法的备注说明”
  • @ApiImplicitParams、@ApiImplicitParam:描述方法参数

    @ApiImplicitParams:用在请求的方法上,包含一组参数说明
    	@ApiImplicitParam:对单个参数的说明	    
        	name:参数名
        	value:参数的说明、描述
        	required:参数是否必须必填
        	paramType:参数放在哪个地方
            	· query --> 请求参数的获取:@RequestParam
            	· header --> 请求参数的获取:@RequestHeader	      
            	· path(用于restful接口)--> 请求参数的获取:@PathVariable
            	· body(请求体)-->  @RequestBody User user
            	· form(普通表单提交)	   
        	dataType:参数类型,默认String,其它值dataType="Integer"	   
      		defaultValue:参数的默认值
      		
    @Api(tags="用户模块")
    @Controller
    public class UserController {
    
    	@ApiOperation(value="用户登录",notes="随边说点啥")
    	@ApiImplicitParams({
    		@ApiImplicitParam(name="mobile",value="手机号",required=true,paramType="form"),
    		@ApiImplicitParam(name="password",value="密码",required=true,paramType="form"),
    		@ApiImplicitParam(name="age",value="年龄",required=true,paramType="form",dataType="Integer")
    	})
    	@PostMapping("/login")
    	public JsonResult login(@RequestParam String mobile, @RequestParam String password,
    	@RequestParam Integer age){
    		//...
    	    return JsonResult.ok(map);
    	}
    }
    		
    
  • @ApiResponses、@ApiResponse:方法返回值的状态码说明

    @ApiResponses:方法返回对象的说明
    	@ApiResponse:每个参数的说明
    	    code:数字,例如400
    	    message:信息,例如"请求参数没填好"
    	    response:抛出异常的类
    
  • @Model:描述javabean

    @ApiModel(description = "xxxx")
    
  • @ApiModelProperty:用在JavaBean类的属性上面,说明属性的含义

    @ApiModelProperty(value = "错误码")
    private Integer errCode;
    
“**Swagger网站**”通常是指使用 **Swagger** 工具构建的 API 文档展示平台。Swagger 是一个用于设计、开发、测试和文档化 RESTful API 的开源框架,广泛应用于前后端分离架构中。 通过 Swagger 网站,开发者可以: - 在线查看接口文档; - 调试 API 接口(如发送请求、查看响应); - 导出或导入 API 定义文件(如 OpenAPI/Swagger JSON 文件); - 提高团队协作效率与接口可维护性。 --- ### 🧩 常见的 Swagger 相关组件 | 名称 | 描述 | |------|------| | **Swagger UI** | 将 OpenAPI 规范渲染成可视化的 HTML 页面,供用户在线调试和查阅 | | **Swagger Editor** | 用于编写和验证 OpenAPI 规范文档的编辑器 | | **Swagger Codegen** | 根据 OpenAPI 文档生成客户端 SDK 或服务端代码 | | **Swagger Hub** | 云端协作平台,支持多人协同开发 API | --- ### 🔗 常见的 Swagger 网站示例 1. **Swagger UI 示例页面** - 本地部署后访问地址一般为:`http://localhost:8080/swagger-ui.html` - Spring Boot 默认路径(Springfox) - 新版 Springdoc(OpenAPI 3)路径:`/swagger-ui/index.html` 2. **官方演示站点** - [https://petstore.swagger.io](https://petstore.swagger.io) 这是 Swagger 官方提供的演示站点,展示了一个宠物商店的 API 接口。 3. **Swagger Editor 在线版** - [https://editor.swagger.io](https://editor.swagger.io) 可以直接在浏览器中编辑并预览 OpenAPI 文档。 --- ### 🛠️ 如何搭建一个 Swagger 网站? #### 以 Spring Boot + Springdoc 为例: 1. 添加依赖(Maven): ```xml <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> <version>1.6.14</version> </dependency> ``` 2. 启动项目后访问: ``` http://localhost:8080/swagger-ui/index.html ``` 即可看到自动生成的 API 文档界面。 --- ### ✅ 总结 一个 Swagger 网站是一个基于 OpenAPI 规范构建的 API 文档服务平台,能够帮助开发者快速构建、展示和测试 RESTful 接口。无论是本地部署还是使用在线工具,都能显著提升 API 开发效率和质量。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值