我们一直在使用OpenAPI 3.0。x规范,它添加了声明可为null的属性的特性。
当我将此OpenAPI导入AWS API网关时,相应的模型不支持此可为空设置。
有没有办法在OpenAPI 3.0中声明可为null的属性。那么AWS API网关是否也使用此设置识别和配置基础模型?
示例OpenAPI规范
openapi: "3.0.2"
info:
title: Test
description: |
API
version: "0.1.0"
license:
name: Private
url: https://fillme.one/license
servers:
- url: /api/v1
paths:
/accounts:
post:
operationId: repa
responses:
200:
description: test
requestBody:
content:
application/json:
schema:
type: object
properties:
date:
type: string
format: date-time
nullable: true
required:
- date
生成模型的结果JSON模式文档
{
"required" : [ "date" ],
"type" : "object",
"properties" : {
"date" : {
"type" : "string",
"format" : "date-time"
}
}
}
很明显,类型应该是[“string”,null]
的并集,但AWS API网关忽略了OpenAPI规范。
有什么帮助吗?
AWS API网关需要JSON模式格式的模型,而不是OpenAPI模式格式的模型。以下是文档中的相关注释(重点是我的):
API Gateway支持大多数OpenAPI 2.0规范和OpenAPI 3.0规范,但以下例外:
这意味着AWS API网关需要type:[string,'null']
而不是type: string
nullable: true
。
但是,type:[string,'null']
在OpenAPI 3.0中不是有效的语法(但在OAS 3.1中有效)。您可以做的是在将现有的OpenAPI文件导入AWS API Gateway之前对其进行预处理,并将可空类型定义更改为AWS期望的格式/语法。您可以尝试使用openapi-Schema-to-json-Schema
等工具。
我们正在尝试从C#Windows服务调用AWS API网关来执行后台作业。哪个应该触发API网关定期初始化请求? 我们使用RestSharp调用APIendpoint,该类称为AwsAuthenticator,它继承自RestSharp.Authenticators.IAAuthenticator。但当我们调用API Gateway时,收到的错误是“我们计算的请求签名与您提供的签名不匹配。请检查您
问题内容: PHP中此错误的可能原因是什么?在哪里可以找到有关 兼容的信息 ? 问题答案: 与相比具有不同的参数或不同的访问级别(公共/私有/受保护)。
我刚刚在PHP 5.4上安装了woocommerce 2.0(在Wordpress上),我得到了这个: 严格标准:WC_Gateway_BACS::process_payment()的声明应与D:\my\path\to\htdocs\wordpress\plugins\woocommerce\classs\Gateway\BACS\class WC-Gateway-BACS中的WC_payment
我正在尝试创建用于AWS IoT的自签名X.509证书。我可以理解它与普通的OpenSSL证书没有什么不同,但我偶然发现AWS创建的PEM文件有些不同。因为我是OpenSSL新手,所以我无法找出我缺少了什么 我使用下面的命令创建私钥、CSR和服务器证书 openssl req-newkey rsa: 2048-new-节点-keyoutkey.pemcsr.pem openssl x509-req
问题内容: 如何在Python中声明静态属性? 这里写了我如何声明一个方法: Python中的静态方法? 问题答案: 在Python的类级别定义的所有变量均被视为静态 在类中,您可以使用相同的名称拥有两个不同的变量(一个静态变量和一个普通变量)。不要困惑。
问题内容: 如何在JavaScript中创建名称空间,以使我的对象和函数不会被其他同名对象和函数覆盖?我使用了以下内容: 有没有更优雅或更简洁的方法? 问题答案: 我喜欢这个: