SwaggerHub 中是否有 API 来更新文件定义?

Is there an API in SwaggerHub to update the file definition?

是否有更新文件定义的API? 我正在寻找一种方法让我的项目在 Git 和 SwaggerHub 中自动同​​步,所以我想在每次合并时更新文件定义。 可能吗?您如何管理使您的项目和 SwaggerHub 定义自动同步?

是的,SwaggerHub 有一个 API:

https://api.swaggerhub.com
Integrating with the SwaggerHub API

和一些官方 API 客户。

API

cURL 命令创建或更新 API(注意使用 --data-binary 而不是 -d/--data):

curl -X POST "https://api.swaggerhub.com/apis/OWNER/API_NAME" \
     -H "Authorization: YOUR_API_KEY" \
     -H "Content-Type: application/yaml" \
     --data-binary @myapi.yaml

供参考的原始 HTTP 请求:

POST https://api.swaggerhub.com/apis/OWNER/API_NAME
Authorization: YOUR_API_KEY
Content-Type: application/yaml

# Request body is your complete YAML/JSON file
swagger: '2.0'
info:
  title: My API
  version: 1.0.0
paths:
  ...

使用正确的 Content-Type header 值:application/yaml 用于 YAML 或 application/json 用于 JSON。

SwaggerHub CLI

围绕 SwaggerHub API 的 command-line wrapper,作为 npm 模块提供。

npm install -g swaggerhub-cli

指定您的 API 密钥(从 https://app.swaggerhub.com/settings/apiKey 获取):

swaggerhub configure

? SwaggerHub URL: https://api.swaggerhub.com
? API Key: <paste your key>

新建 API:

swaggerhub api:create OWNER/API_NAME --file myapi.yaml

更新现有 API:

swaggerhub api:update OWNER/API_NAME/VERSION --file myapi.yaml --visibility private

Maven 插件

https://github.com/swagger-api/swaggerhub-maven-plugin/

Gradle 插件

https://github.com/swagger-api/swaggerhub-gradle-plugin/