springcloud-alibaba基于nacos整合knife4j接口文档

参考

参考

一、api-doc模块添加pom依赖

<dependencies>
    <!--        springboot-web-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
        <!--        knife4j接口文档-->
    <dependency>
        <groupId>com.github.xiaoymin</groupId>
        <artifactId>knife4j-aggregation-spring-boot-starter</artifactId>
        <version>2.0.8</version>
    </dependency>
</dependencies>

二、配置yml

server:
  port: 10909
knife4j:
  enableAggregation: true
  nacos:
    enable: true
    serviceUrl: http://localhost:8848/nacos
    routeAuth:
      enable: true
      username: nacos
      password: nacos
    routes:
      - name: 订单服务
        serviceName: service-order
        location: /v2/api-docs?group=default
        servicePath: /order/prod

三、主类

package com.aipdoc;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DocApplication {
public static void main(String[] args) {
        SpringApplication.run(DocApplication.class);
    }
}

至此,api-doc模块已经配置好了。如果有gateway网关,要放行api路径,在官方文档中有指引,这里只是做一个简单示例。接下来是在各个微服务模块中配置knife4j。

四、微服务引入pom

<!--      knife4j接口文档  -->
        <!-- https://mvnrepository.com/artifact/com.github.xiaoymin/knife4j-micro-spring-boot-starter -->
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-micro-spring-boot-starter</artifactId>
            <version>3.0.2</version>
        </dependency>

五、配置类Knife4jConfiguration

注意: RequestHandlerSelectors.basePackage("com.yushanma.controller") 扫描的包名应该是 本微服务下的控制器所在包路径

六、接口组

@Api(tags = "接口组名字")

七、接口与参数

// 编写示例, @ApiOperation指明是什么接口,@ApiImplicitParams指明参数是什么

@ApiOperation(value = "测试接口", notes = "studentMapper与iStudentService的测试")
@ApiImplicitParams({@ApiImplicitParam(name = "msg", required = true, paramType = "path")})

八、测试

先启动其他微服务,最后启动api-doc微服务,访问文档中心 http://localhost:10909/doc.html#/home,我们就可以看到编写好的接口,以及进行在线调试接口

经验分享 程序员 微信小程序 职场和发展