标签: openapi

如何从 OpenAPI/Swagger 模型定义生成 JSON 示例?

我正在为具有 OpenAPI (Swagger) 定义的 REST API 构建模糊器。

我想测试 OpenAPI 定义中的所有可用路径,生成数据以测试服务器,分析响应代码和内容,并验证响应是否符合 API 定义。

我正在寻找一种从模型定义生成数据(JSON 对象)的方法。

例如,给定这个模型:

...
"Pet": {
  "type": "object",
  "required": [
    "name",
    "photoUrls"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64"
    },
    "category": {
      "$ref": "#/definitions/Category"
    },
    "name": {
      "type": "string",
      "example": "doggie"
    },
    "photoUrls": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "tags": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/Tag"
      }
    },
    "status": {
      "type": "string",
      "description": "pet status in the store"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我想生成随机数据并得到如下内容: …

json swagger swagger-2.0 openapi swagger-codegen

9
推荐指数
2
解决办法
2万
查看次数

AWS API Gateway是否支持OpenAPI 3.0?

我在文档中的某处读到AWS API Gateway包含对Swagger的支持,但Swagger现在更正式地称为OpenAPI规范,并且已经碰到主要版本3.0.

amazon-web-services swagger aws-api-gateway openapi

9
推荐指数
2
解决办法
3609
查看次数

如何在OpenAPI(Swagger)中记录动态查询参数名称?

有没有办法记录以下查询?

GET api/v1/users?name1=value1&name2=value
Run Code Online (Sandbox Code Playgroud)

其中查询参数名称是动态的,将从客户端接收.

我正在使用最新的Swagger API.

swagger swagger-editor openapi swagger-codegen

9
推荐指数
1
解决办法
3049
查看次数

Azure函数V2中的摇摆

我正在创建一个V2函数应用程序,并希望将Swagger/Open API用于文档,但Azure Portal for V2 Functions尚不支持它.

关于如何在VSTS中使用Swagger和V2函数在每个构建中创建文档的任何建议?

swagger azure-devops azure-functions openapi

9
推荐指数
3
解决办法
4406
查看次数

使用swagger-config.yaml进行Swagger UI配置

根据一般的文档,

Swagger-UI在四个位置接受配置参数。

从最低到最高优先级:

  1. 项目根目录中的swagger-config.yaml(如果存在)被烘焙到应用程序中
  2. 配置对象作为参数传递给Swagger-UI(SwaggerUI({...}))
  3. 从指定的configUrl获取的配置文档
  4. 在URL查询字符串中作为键/值对传递的配置项

我试图将swagger-config.yaml放在应用程序的根目录中,但无法正常工作。

我遵循了昂首阔步的安装步骤及其正常工作。但是大步自定义配置的步骤不起作用。我保存了以下文件,

 swagger-ui
   |--swagger-config.yaml
   |--index.html
Run Code Online (Sandbox Code Playgroud)

swagger-config.yaml

url: "https://petstore.swagger.io/v2/swagger.json"
dom_id: "#swagger-ui"
validatorUrl: "https://online.swagger.io/validator"
oauth2RedirectUrl: "http://localhost:3200/oauth2-redirect.html"
Run Code Online (Sandbox Code Playgroud)

index.html

// Begin Swagger UI call region
      const ui = SwaggerUIBundle({
        //url: "https://petstore.swagger.io/v2/swagger.json",
        //dom_id: '#swagger-ui',
        deepLinking: true,
        presets: [
          SwaggerUIBundle.presets.apis,
          SwaggerUIStandalonePreset
        ],
        plugins: [
          SwaggerUIBundle.plugins.DownloadUrl
        ],
        layout: "StandaloneLayout"
      })
Run Code Online (Sandbox Code Playgroud)

我有什么想念的吗?

javascript swagger swagger-ui swagger-2.0 openapi

9
推荐指数
2
解决办法
1826
查看次数

如何在 OpenAPI 中为每个索引(即元组)定义一个具有具体项目定义的 JSON 数组?

我需要在 OpenAPI 中定义带有数组的 JSON 响应。该数组始终包含 2 个项目,第一个项目始终是数字,第二个项目始终是字符串。

[1, "a"]    //valid
["a", 1]    //invalid
[1]         //invalid
[1, "a", 2] //invalid
Run Code Online (Sandbox Code Playgroud)

我发现 JSON 模式确实通过传递项目列表而items不是单个对象(source)来支持这一点,但 OpenAPI 明确禁止这样做,并且只接受单个对象(source)。那如何用 OpenAPI 来表达呢?

tuples openapi

9
推荐指数
1
解决办法
5214
查看次数

如何在 OpenAPI 3 中使用自定义前缀定义授权标头?

我正在寻找正确的方法来指定Authorization具有自定义类型/前缀(如 OpenAPI 3 中的“ApiKey”)的标头。

自定义Authorization标头应该类似于

Authorization: ApiKey myAPIKeyHere
Run Code Online (Sandbox Code Playgroud)

我所有指定securitySchemes条目的尝试type: apiKey似乎都会产生其他结果......

我得到的最接近的是这样的:

Authorization: ApiKey myAPIKeyHere
Run Code Online (Sandbox Code Playgroud)

...但这会生成ApiKey: myAPIKeyHere标头而不是Authorization: ApiKey myAPIKeyHere.

这样的要求如何具体化呢?

authorization openapi

9
推荐指数
1
解决办法
1万
查看次数

OpenAPI 3 - 只读属性,但允许在 POST/PUT 中写入

有没有一种方法可以将属性表示为只读,但允许在 POST 或 PUT(即创建或替换)操作期间写入该属性?

换句话说,在创建资源时,我希望该属性是可写的。但是一旦创建了资源,我想保持它不可变。属性可以是 POSTable/PUTable 但不是 PATCHable 吗?

例子:

# OK example.
/AwesomeResource POST
{"owner": "ownerID123"}

vs

# Bad Request example.
/AwesomeResource/456 PATCH
{"owner": "ownerID789"}
Run Code Online (Sandbox Code Playgroud)

rest openapi connexion

9
推荐指数
1
解决办法
3036
查看次数

在 SpringDoc OpenAPi 中未禁用 petstore URL

我正在使用SpringDoc 1.4.3招摇。
我添加了以下配置以禁用中的petstoreURLapplication.yml

配置

springdoc:
  swagger-ui:
    disable-swagger-default-url: true
    tags-sorter: alpha
    operations-sorter: alpha
    doc-expansion: none
Run Code Online (Sandbox Code Playgroud)

但是当我在探索文本框中点击https://petstore.swagger.io/v2/swagger.json时,它仍然显示如下图所示的 petsore URL。

招摇形象

招摇形象

swagger-ui openapi springdoc springdoc-ui springdoc-openapi-ui

9
推荐指数
2
解决办法
5198
查看次数

如何使用 Swagger \ OpenAPI 记录 GraphQL?

如何使用 Swagger 记录 GraphQL?我们有一个庞大的后端 REST API,它最近部分开始使用 GraphQL。为了记录 API,我们使用 Swagger。

问题是:如何使用 Swagger(OpenAPI) 来记录 GraphQL 端点?Swagger 或 GraphQL 的官方文档中绝对没有相关信息。

documentation rest swagger graphql openapi

9
推荐指数
3
解决办法
2万
查看次数