我正在创建一个AWS API网关使用terraform和openAPI规范与swagger。我需要添加一个请求验证器,根据匹配的模式[a-zA-z0-9]{10}来验证消息头。我能够设置基本的验证器来检查标题是否为空,但是不能用模式进行验证。
"x-amazon-apigateway-request-validators" : {
"full" : {
"validateRequestBody" : true,
"validateRequestParameters" : true,
"validateRequestHeaders" : true
},
"body-only" : {
"validateRequestBody" : true,
"validateRequestParameters" : false
}
},
"x-amazon-apigateway-request-validator" : "full",
"paths": {
"/validation": {
"get": {
"parameters": [
{
"in": "header",
"name": "x-request-id",
"required": true,
"type": "string",
"pattern" : "^[a-z0-9]{10}$"
},
{
"in": "query",
"name": "name",
"required": true,
"type": "string",
"pattern": "^[a-zA-Z]{5}$"
}
]
}
}
请建议是否有任何方法实现这一点
代替
"type": "string",
"pattern" : "^[a-z0-9]{10}$"
应该是这样的
"schema": {
"type": "string",
"pattern" : "^[a-z0-9]{10}$"
}
另请参见此处
我可以为您的需求提出一个解决方法。您可以使用基于请求的Lambda授权器,并在Lambda函数中实现验证逻辑。如果您只需要验证一个标头,您也可以使用基于令牌的Lambda授权器,并指定令牌验证正则表达式。
一旦Lambda函数确定传入标头是否有效,它就可以授予对API的访问权限。
您可以使用API网关控制台检查如何配置Lambda授权器。
我正在创建一个用于Postman的JSON模式,其中包含一些模式定义。我针对模式验证的JSON需要与模式定义之一匹配。 示例模式 JSON数据示例 此JSON根据模式进行验证,并正确标记为无效(因为需要字符串): 问题 此示例根据https://www.jsonschemavalidator.net/返回4个错误: 消息:JSON对“oneOf”中的任何模式都无效。模式路径:#/oneOf 我只对
我有一个字符串,我正试图根据几个regex模式验证它,我希望由于模式匹配在3.10中可用,我可以使用它来代替创建if-else块。 考虑一个字符串'validateString',其可能的值1021102,1.25.32string021。 我尝试的代码如下所示。 对于正则表达式1、2和3,我尝试了字符串正则表达式模式,还重新设置了。编译对象,但它似乎不起作用。 我一直试图在互联网上找到这方面的例
我们正在尝试从C#Windows服务调用AWS API网关来执行后台作业。哪个应该触发API网关定期初始化请求? 我们使用RestSharp调用APIendpoint,该类称为AwsAuthenticator,它继承自RestSharp.Authenticators.IAAuthenticator。但当我们调用API Gateway时,收到的错误是“我们计算的请求签名与您提供的签名不匹配。请检查您
模式匹配,多出现在函数式编程语言之中,为其复杂的类型系统提供一个简单轻松的解构能力。比如从enum等数据结构中取出数据等等,但是在书写上,相对比较复杂。我们来看一个例子: enum Direction { East, West, North, South, } fn main() { let dire = Direction::South; matc
问题内容: 我从一些JSON文件创建了API规范,并且尝试测试这些文件是否根据API规范进行了验证。 有一些不错的工具可以根据JSON Schema进行验证,但是我没有找到针对Swagger中创建的规范进行验证的工具(用于创建API架构的工具)。我发现的唯一解决方案是在Swagger- Editor中生成客户端/服务器,这非常麻烦。 是否已经有现有工具可以针对Swagger Schema验证JSO
问题内容: 有没有一种方法可以针对该结构的JSON模式验证JSON结构?我已经查看并发现JSON.Net验证了,但这并不能满足我的要求。 JSON.net可以: 这证明是正确的。 这也证明是真的 仅此验证为假。 理想情况下,我希望它可以验证那里也没有应该存在的字段。 问题答案: 我认为您只需要添加 到您的架构。这将停止提供未知属性。 因此,现在您的结果将是:-正确,错误,错误 测试代码… 输出:-