首页 > 解决方案 > SwaggerHub 中是否有用于更新文件定义的 API?

问题描述

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

标签: swaggerhub

解决方案


是的,SwaggerHub 有一个 API:

https://api.swaggerhub.com
与 SwaggerHub API 集成

和一些官方 API 客户端。

API

用于创建或更新 API 的 cURL 命令(注意使用--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标头值:application/yaml用于 YAML 或application/jsonJSON。

SwaggerHub CLI

SwaggerHub API的命令行包装器,可作为 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/


推荐阅读