Springfox参考⽂档(SpringfoxReferenceDocumentation中⽂)
1. 介绍
Springfox Java库套件主要是为了能够让使⽤编写的JSON APIs⾃动⽣成机器和⼈类可读的规范。Springfox的⼯作原理是在运⾏时检查⼀次应⽤程序,根据Spring配置、类结构和各种编译时java注解推断API语义。
1.1. 历史
Springfox是从最初创建的⼀个项⽬演变⽽来的,并被命名为swagger-springmvc。很多荣誉都归功于马蒂。
1.2. ⽬标
⽀持更多针对JSON API规范和⽂档的不断发展的标准,例如:、和。
提供更多外的Spring技术的⽀持
从哲学上讲,我们不⿎励在运⾏时使⽤对服务描述不重要的(swagger-core)注解。例如,Jackson注解应该总是胜
过@ApiModelProperty,或者具有⽐@ApiModelProperty更⼤的权重,⼜像是,@NotNull或指定@RequestParam#Required应该始终取胜。在⽆法推断服务/模式特征的情况下,注解仅⽤于补充⽂档或覆盖/调整⽣成的规范。
1.3. 它不是什么
它不是由Spring框架贡献者认可或批准的
1.4. 开发环境
⽂件(File) >> 打开(Open) >> adle
确保选中“使⽤默认Gradle包装器”选项。
⾸次构建
./gradlew cleanIdea idea
要发布到本地maven存储库,请执⾏以下操作
./gradlew clean build publishToMavenLocal -i
此版本针对将软件发布为binray/Sonatype进⾏了优化。为了让Gradle确定版本,Gradle插件依赖于本地⽂件夹作为克隆的git存储库。下载源代码存档和构建将不起作⽤!
1.4.1. 预提交构建
代码质量(代码覆盖率、检查样式)
./gradlew check
1.4.
2. 创建参考⽂档
构建所有当前⽂档(构建⼿写⽂档和javadoc),请执⾏以下操作:
./gradlew allDocs
档在build/all-docs⽂件夹中⽣成。发布当前⽂档的步骤(快照)
./gradlew publishDocs
1.4.3. 更新契约测试
在开发新契约测试时,为了便于⽤新契约更新现有测试,请取消对中以下⾏的注解。通常,当我们为已经修复的bug或添加的功能添加新的约定测试时,会发⽣这种情况,我们在或中创建⼀个端点来演⽰新的修复或⾏为。
// NOTE: Uncomment to bulk update contracts
//test {
// systemProperty("", "$projectDir/src/test/resources")
// systemProperty("sts.update", true)
//}
1.4.4. 持续集成环境
1.5. 发布
要发布Springfox的⾮快照版本,请执⾏以下操作:
执⾏Release命令:运⾏Release需要以下环境变量:
GITHUB_TOKEN
BINTRAY_USER_NAME
BINTRAY_PASSWORD
SONATYPE_USER_NAME
SONATYPE_PASSWORD
建议将与Repo根⽬录下的.env⽂件⼀起使⽤。
./gradlew release -PreleaseType=<MAJOR|MINOR|PATCH> -i
./gradlew publishDocs
发布步骤如下:
检查git⼯作区是否⼲净
检查本地git分⽀是否为主
检查本地git分⽀是否与Origin相同
Gradle测试
Gradle检查
将所有⼯件上传(发布)到Bintra
在version.properties中升级项⽬版本
Git tag发布
Git推送
1.5.1. 快照
通常由CI服务器完成
./gradlew publishSnapshot
1.5.
2. 覆盖部署
需要绕过标准发布流并直接上传到binray,请使⽤以下任务 - 在version.properties中⼿动设置版本
./gradlew clean build bintrayUpload -PreleaseType=<MAJOR|MINOR|PATCH>
--stacktrace
1.5.3. 发布⽂档
需要更新现有版本的⽂档,请传递updateMode开关
./gradlew releaseDocs
1.5.4. 贡献
获取指导原则请参阅
1.6 ⽀持
如果发现问题或错误,请通过提交
reference group
2.快速⼊门
2.1. 依赖
Springfox库托管在和JCenter上。以下是访问链接:
Release:
jcenter.bintray/io/springfox/
jcenter.bintray/io/springfox/
Snapshot
/simple/oss-snapshot-local/io/springfox/
/oss-snapshot-local/io/springfox/
Springfox有多个模块,依赖关系将根据所需的API规范标准⽽有所不同。下⾯概述了如何引⼊springfox-swagger2模块,该模块⽤于⽣成Swagger2.0API⽂档。
2.1.1. Gradle
Release
repositories {
jcenter()
}
dependencies {
compile "io.springfox:springfox-swagger2:2.9.2"
}
Snapshot
repositories {
maven { url '/artifactory/oss-snapshot-local/' }
}
dependencies {
compile "io.springfox:springfox-swagger2:2.9.2-SNAPSHOT"
}
2.1.2. Maven
Release
<repositories>
<repository>
<id>jcenter-snapshots</id>
<name>jcenter</name>
<url>jcenter.bintray/</url>
</repository>
</repositories>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
Snapshot
<repositories>
<repository>
<id>jcenter-snapshots</id>
<name>jcenter</name>
<url>/artifactory/oss-snapshot-local/</url> </repository>
</repositories>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2-SNAPSHOT</version>
</dependency>
3. 快速⼊门指南
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论