本文已收录在Github,关注我,紧跟本系列专栏文章,咱们下篇再续!
- 🚀 魔都架构师 | 全网30W技术追随者
- 🔧 大厂分布式系统/数据中台实战专家
- 🏆 主导交易系统百万级流量调优 & 车联网平台架构
- 🧠 AIGC应用开发先行者 | 区块链落地实践者
- 🌍 以技术驱动创新,我们的征途是改变世界!
- 👉 实战干货:编程严选网
1 项目整合 swagger
在聚合工程中的父 pom 工程的 pom 文件中添加依赖
<!-- swagger2 配置 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.4.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.4.0</version>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>swagger-bootstrap-ui</artifactId>
<version>1.6</version>
</dependency>- 指定API类型为swagger2.0
- 定义API文档汇总信息
- 指定controller包
- 所有controller
2 源码解析
package springfox.documentation.spi;
import org.springframework.http.MediaType;
import org.springframework.plugin.metadata.SimplePluginMetadata;
public class DocumentationType extends SimplePluginMetadata {
public static final DocumentationType SWAGGER_12 =
new DocumentationType("swagger", "1.2");
public static final DocumentationType SWAGGER_2 =
new DocumentationType("swagger", "2.0");
public static final DocumentationType SPRING_WEB =
new DocumentationType("spring-web", "1.0");
private final MediaType mediaType;
/**
* Creates a new instance of {@code SimplePluginMetadata}.
*/
public DocumentationType(String name, String version, MediaType mediaType) {
super(name, version);
this.mediaType = mediaType;
}
public DocumentationType(String name, String version) {
this(name, version, MediaType.APPLICATION_JSON);
}
public MediaType getMediaType() {
return mediaType;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof DocumentationType)) {
return false;
}
if (!super.equals(o)) {
return false;
}
DocumentationType that = (DocumentationType) o;
return super.equals(that) && mediaType.equals(that.mediaType);
}
@Override
public int hashCode() {
int result = super.hashCode();
result = 31 * result + mediaType.hashCode();
return result;
}
}3 Swagger JSON Doc
在线编辑地址
编辑生成样板代码

所以 swagger 不仅支持代码优先还支持契约优先编程。
















