若依自定义服务配置swagger文档

本文介绍如何在Swagger中调试自定义接口。通过分析源码并在GatewayProperties中添加配置,然后在Nacos中更新设置,可以实现Swagger-UI的自定义。推荐使用第三方维护的UI,它提供更清晰的注释和更人性化的文档。此外,还需要在自定义服务的pom.xml、主类和Nacos配置中进行相应调整,并在接口方法和入参上添加注释。完成这些步骤后,将能在Swagger界面上看到自定义服务的接口文档。

我们想要在swagger中直接调试自己的接口

通过分析源码可得 具体添加 spec的 代码 如下 在gatewayProperties这个对象中

package com.ruoyi.gateway.config;
/**
 * 聚合系统接口
 * 
 * @author ruoyi
 */
@Component
public class SwaggerProvider implements SwaggerResourcesProvider
{
    @Override
    public List<SwaggerResource> get()
    {
        List<SwaggerResource> resourceList = new ArrayList<>();
        List<String> routes = new ArrayList<>();
        // 获取网关中配置的route
        routeLocator.getRoutes().subscribe(route -> routes.add(route.getId()));
        gatewayProperties.getRoutes().stream()

这个对象 需要在网关的nacos配置中增加如下代码

spring:
  cloud:
    gateway:
      routes:
        # APP模块
        - id: ruoyi-app
          uri: lb://ruoyi-app
          predicates:
            - Path=/app/**
          filters:
            - StripPrefix=1

网关中默认配置了 swagger-Ui


        <!-- 官方 Swagger UI 3.0 -->
        <!--        <dependency>-->
        <!--            <groupId>io.springfox</groupId>-->
        <!--            <artifactId>springfox-swagger-ui</artifactId>-->
        <!--            <version>${swagger.fox.version}</version>-->
        <!--        </dependency>-->

        <!-- 第三方 Swagger UI 被淘汰了 启用SwaggerBootstrapUi提供的增强功能 后会空白! -->
<!--        <dependency>-->
<!--            <groupId>com.github.xiaoymin</groupId>-->
<!--            <artifactId>swagger-bootstrap-ui</artifactId>-->
<!--            <version>1.9.6</version>-->
<!--        </dependency>-->

        <!--  第三方 swaggerUi https://gitee.com/xiaoym/knife4j  -->
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-spring-ui</artifactId>
            <version>2.0.9</version>
        </dependency>


        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>${swagger.fox.version}</version>
        </dependency>

官方3.0地址是 127.0.0.1:8080/swagger-ui/index.html

推荐使用 第三方维护的ui替换官方ui 注释更清晰 文档更人性

新ui地址为 127.0.0.1:8080/doc.html


        <!-- Swagger UI -->
<dependency>
      <groupId>com.github.xiaoymin</groupId>
     <artifactId>swagger-bootstrap-ui</artifactId>
     <version>1.9.6</version>
</dependency>

自定义服务的 pom.xml 中增加


        <!-- RuoYi Common Swagger -->
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-common-swagger</artifactId>
        </dependency>

在自定义服务的main主类中增加

...

/**
 *  开启swagger
 */
@EnableCustomSwagger2

public class MyAppApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyAppApplication.class, args);
        ...

在自定义服务的nacos的配置中增加  


# swagger配置
swagger:
  title: app模块接口文档
  license: Powered By kalun
  licenseUrl: https://www.apizza.net/project/7eca0397c4b96fcaa115be0ee654c9c6/browse

在定义的接口中 注释方法


    @ApiOperation(value = "将参数转换为JSON", notes = "")

入参参数添加注释


    @ApiParam(value = "版本号ApiParam", defaultValue = "2")

最终效果

第三方ui效果

### 若依框架中 Swagger配置方法 在若依框架中集成和配置 Swagger 是为了方便开发者调试 API 接口。以下是关于如何在若依框架中完成 Swagger 配置的具体说明: #### 1. 添加依赖 首先,在项目的 `pom.xml` 文件中引入 Swagger 相关的 Maven 依赖项[^3]。 ```xml <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>3.0.0</version> </dependency> ``` 此操作会将 Swagger 和 Spring Boot 整合所需的库下载至项目中。 --- #### 2. 创建 Swagger 配置类 创建一个Java 类用于初始化 Swagger 配置,通常命名为 `SwaggerConfig.java`。该类需通过 `@Configuration` 注解标记为 Spring Bean 并定义 Docket 对象来描述 API 文档的信息。 ```java import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; @Configuration public class SwaggerConfig { @Bean public Docket createRestApi() { return new Docket(DocumentationType.OAS_30) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.ruoyi")) // 替换为实际包路径 .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("若依系统 API 文档") // 设置文档标题 .description("基于若依框架构建的 RESTful APIs 描述") // 设置文档描述 .version("1.0.0") // 版本号 .build(); } } ``` 上述代码片段展示了如何设置基础信息以及扫描指定包下的控制器接口以生成对应的 API 文档。 --- #### 3. 修改应用启动类 确保项目启动类(如 `RouYiApplication` 或 `RouYiServletInitializer`)已启用组件扫描功能并加载自定义配置文件[^1]。如果未开启,则需要手动添加如下注解: ```java @SpringBootApplication(scanBasePackages = {"com.ruoyi"}) @EnableOpenApi // 启用 OpenAPI 支持 (SpringFox 提供) public class RouYiApplication { public static void main(String[] args) { SpringApplication.run(RouYiApplication.class, args); } } ``` 这一步骤是为了让 Spring 容器能够识别到我们刚刚编Swagger 配置类。 --- #### 4. 实体类字段标注 为了让 Swagger 更加清晰地展示参数含义,可以利用 `@ApiModelProperty` 注解对实体类中的字段进行补充说明。 ```java @Data public class UserDto { @ApiModelProperty(value = "主键", required = false) private Long id; @ApiModelProperty(value = "账户名称", required = true) private String username; @ApiModelProperty(value = "密码", required = true) private String password; } ``` 这些注解会在最终生成的文档界面显示出来,帮助使用者理解各个字段的作用及其约束条件。 --- #### 5. 访问 Swagger UI 页面 当以上步骤完成后,重启应用程序即可访问默认地址查看在线版 API 文档页面。一般情况下,默认 URL 路径为:<http://localhost:8080/swagger-ui/index.html#/> 需要注意的是,某些版本可能需要调整具体路径或者安装额外插件才能正常渲染效果[^5]。 --- #### 常见问题排查 - **无法加载资源**:确认是否正确设置了静态资源配置;检查是否存在跨域限制。 - **Token 权限不足**:登录后获取 token,并将其加入请求头部分传递给服务器验证身份合法性。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值