Springfox参考文档(Springfox Reference Documentation 中文)

Springfox是一个Java库,用于自动为使用Spring构建的JSON APIs生成规范文档。它通过运行时检查和Spring配置、注解来推断API的语义,支持Swagger、Raml等标准。本文档介绍了Springfox的起源、目标、开发环境设置、发布流程以及快速入门指南。
摘要由CSDN通过智能技术生成

1. 介绍

Springfox Java库套件主要是为了能够让使用Spring系列项目编写的JSON APIs自动生成机器和人类可读的规范。Springfox的工作原理是在运行时检查一次应用程序,根据Spring配置、类结构和各种编译时java注解推断API语义。

1.1. 历史

Springfox是从马蒂·皮特最初创建的一个项目演变而来的,并被命名为swagger-springmvc。很多荣誉都归功于马蒂。

1.2. 目标

  • 支持更多针对JSON API规范和文档的不断发展的标准,例如:swaggerRamljsonapi
  • 提供更多Spring webmvc外的Spring技术的支持
  • 从哲学上讲,我们不鼓励在运行时使用对服务描述不重要的(swagger-core)注解。例如,Jackson注解应该总是胜过@ApiModelProperty,或者具有比@ApiModelProperty更大的权重,又像是,@NotNull或指定@RequestParam#Required应该始终取胜。在无法推断服务/模式特征的情况下,注解仅用于补充文档或覆盖/调整生成的规范。

1.3. 它不是什么

它不是由Spring框架贡献者认可或批准的

1.4. 开发环境

  • 文件(File) >> 打开(Open) >> build.gradle

  • 确保选中“使用默认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. 更新契约测试

在开发新契约测试时,为了便于用新契约更新现有测试,请取消对swagger-tract-test/build.gradle中以下行的注解。通常,当我们为已经修复的bug或添加的功能添加新的约定测试时,会发生这种情况,我们在BugsControllerFeatureDemonstrationService中创建一个端点来演示新的修复或行为。

// NOTE: Uncomment to bulk update contracts
//test {
//  systemProperty("contract.tests.root", "$projectDir/src/test/resources")
//  systemProperty("contract.tests.update", true)
//}
1.4.4. 持续集成环境

Circle CI

1.5. 发布

要发布Springfox的非快照版本,请执行以下操作:

  • 执行Release命令:运行Release需要以下环境变量:
  • GITHUB_TOKEN
  • BINTRAY_USER_NAME
  • BINTRAY_PASSWORD
  • SONATYPE_USER_NAME
  • SONATYPE_PASSWORD

建议将autoenv与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 支持

如果发现问题或错误,请通过Springfox Github项目提交

2.快速入门

2.1. 依赖

Springfox库托管在bintray和JCenter上。以下是访问链接:

  • Release:
    • https://jcenter.bintray.com/io/springfox/
    • http://jcenter.bintray.com/io/springfox/
  • Snapshot
    • http://oss.jfrog.org/simple/oss-snapshot-local/io/springfox/
    • http://oss.jfrog.org/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 'http://oss.jfrog.org/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>https://jcenter.bintray.com/</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>http://oss.jfrog.org/artifactory/oss-snapshot-local/</url>
    </repository>
</repositories>

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2-SNAPSHOT</version>
</dependency>

3. 快速入门指南

查看剩余全部

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值