011-从零搭建微服务-接口文档(一)

文章介绍了如何使用SpringDoc替换SpringFox作为API文档工具,并展示了如何在SpringCloudGateway中聚合各个微服务的接口文档。通过配置SpringDoc,实现了接口文档的在线查看和测试功能,并提供了详细的配置步骤和代码示例。

写在最前

如果这个项目让你有所收获,记得 Star 关注哦,这对我是非常不错的鼓励与支持。

源码地址(后端):https://gitee.com/csps/mingyue-springcloud-learning

源码地址(前端):https://gitee.com/csps/mingyue-springcloud-ui

文档地址:https://gitee.com/csps/mingyue-springcloud-learning/wikis

开胃小菜

如果对接口文档不了解可以先看看下面的一些推荐阅读,简单了解一哈,不过已经不推荐使用了,之前使用 SpringFox 实现的。

首先 SpringFox 停止维护,很多 Bug 也不会修复了,其次 SpringDoc 基于 javadoc 无注解零入侵生成规范的 Openapi 结构体是行业规范,很多工具都支持接入,如:ApifoxPostman等。

SpringFox 与 SpringDoc 注解差异

Swagger SpringDoc JavaDoc
@jApi(name = “xxx”) @Tag(name = “xxx”) java类注释第一行
@Api(description= “xxx”) @Tag(description= “xxx”) java类注释
@ApiOperation @Operation java方法注释
@ApiIgnore @Hidden
@ApiParam @Parameter java方法@param参数注释
@ApiImplicitParam @Parameter java方法@param参数注释
@ApiImplicitParams @Parameters 多个@param参数注释
@ApiModel @Schema java实体类注释
@ApiModelProperty @Schema java属性注释
@ApiModelProperty(hidden = true) @Schema(accessMode = READ_ONLY)
@ApiResponse @ApiResponse java方法@return返回值注释

mingyue-gateway

引入依赖

<!-- 接口文档 -->
<dependency>
  <groupId>org.springdoc</groupId>
  <artifactId>springdoc-openapi-webflux-ui</artifactId>
</dependency>

SpringDocConfiguration

该类作为 Swagger 接口文档的聚合配置类,统一从网关入口进入 Swagger 文档中心。

@ConditionalOnProperty 注解用来指定如果配置文件中未进行对应属性配置时的默认处理:默认情况下matchIfMissing 为 false,也就是说如果未进行属性配置,则自动配置不生效。如果 matchIfMissing 为 true,则表示如果没有对应的属性配置,则自动配置默认生效。

@Configuration(proxyBeanMethods = false)
public class SpringDocConfiguration {
   
   
  
  /**
	 * 当 swagger.enabled = true 向 Bean 容器中注册改对象
	 * @return
	 */
  @Bean
	@Lazy(false)
	@ConditionalOnProperty(name = "swagger.enabled", havingValue = "true", matchIfMissing = true)
	public List<GroupedOpenApi> apis(SwaggerUiConfigParameters swaggerUiConfigParameters,
									 SwaggerDocProperties swaggerProperties) {
   
   
		List<GroupedOpenApi> groups = new ArrayList<>();
    // 读取配置服务,添加接口分组,以服务为纬度进行分组
		for (String value : swaggerProperties.getServices().values()) {
   
   
			swaggerUiConfigParameters.addGroup(value);
		}
		return groups;
	}
  
  @Data
	@Component
	@ConfigurationProperties("swagger"
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Strive_MY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值