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

Lud*_*udo 3 swaggerhub

有用于更新文件定义的API吗?我正在寻找一种方法来自动保持Git和SwaggerHub中的项目同步,因此我想在每次合并时更新文件定义。可能吗?如何管理使项目和SwaggerHub定义自动保持同步?

Hel*_*len 5

是的,SwaggerHub有一个API:

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

您可以像这样在SwaggerHub中更新您的API定义:

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:
  ...
Run Code Online (Sandbox Code Playgroud)

Content-Type: application/yaml如果上载YAML和上Content-Type: application/json载JSON ,则使用。

笔记:

  • 如果您的API定义采用OpenAPI 3.0格式(openapi: 3.0.x),请将?openapi=3.0.0参数添加到请求URL:

    POST https://api.swaggerhub.com/apis/OWNER/API_NAME?openapi=3.0.0
    
    Run Code Online (Sandbox Code Playgroud)
  • 使用cURL上传YAML文件时,请使用--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
    
    Run Code Online (Sandbox Code Playgroud)

还有MavenGradle插件,用于从SwaggerHub下载API定义/将其上传到SwaggerHub。