当前位置: 首页 > 知识库问答 >
问题:

无服务器框架请求验证程序架构:如何不接受json架构中未包含的对象键和值对?

章昆琦
2023-03-14

Im使用请求验证器模式来验证传入的post请求-

测验json文件:

{
  "definitions": {},
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "title": "POST/cashin",
  "required": ["name"],
  "properties": {
    "name": {
      "type": "string"
    }
  }
}

服务器.yml 文件:

testFunction:
  handler: src/controllers/test.create
  events:
    - http:
        method: POST
        path: /${self:custom.apiVersion}/create
        request:
          schemas:
            application/json: ${file(./src/schemas/test.json)}

没关系,当属性“名称”不包含在post请求中时,它正在验证,但是正如您在我的json文件中看到的,属性中只有名称。当我包含像-

{
    "status": 200,
    "success": true,
    "data": {
        "name": "test",
        "age": 2
    }
}

我想要的只是我在test.json文件上设置的键和值对才会被接受。我还没有看到任何关于json架构的文档,希望它有一个替代的解决方案。

共有1个答案

娄建义
2023-03-14

我已经找到了我的解决方案。只需包含“附加属性”:false,这样它就不会接受 .json 文件中未包含的任何属性

 类似资料:
  • 大家好, 我试图找出如何基于Wildfly中运行的模块(war)移动我当前的系统架构。现在所有的基础资源都放在JNDI树中,比如数据源、JMS等等。。。我的项目框架是Spring 4和family,它允许我查找这些资源和其他内容。 我的目标是使用Spring Boot和Spring Cloud Netflix创建一个微服务架构,其中每一个WAR都是一个通过总线服务集成的新的独立应用程序。 但我的疑

  • 前面我们披露了基于 MINA 的应用架构。现在我们来关注一下服务器端架构。从根本上说,服务器端监听一个端口以获得连入的请求,将其进行处理然后发送回复。服务器端还会为每个客户端 (无论是基于 TCP 还是基于 UDP 协议的) 创建并维护一个 session,详见Chapter 4 - Session。 I/O Acceptor 监听网络以获取连入的连接或者包 对于一个新的连接,一个新的 sessi

  • 我有一个实体与属性@公式像这样: 当我将hibernate配置为指向Oracle DB时,我没有问题,但是,当我切换到SQLServer时,hibernate不包括shema,并且查询失败, 为hibernate生成的查询如下所示: 参数hibernate.default_schema=SIGAP正在读取并包含在表中,但不包含在函数中, 在该函数中是否有强制shema的选项/注释? 我尝试了hib

  • 我正在使用rest-assured并使用它验证JSON模式。我使用jsonschema生成了模式。net(草稿7),并将生成的模式保存在文件中,并根据GETAPI的响应匹配生成的模式。但抛出错误的代码输出如下: 我的通用模式是模式链接 api API repsonse的响应

  • 我想知道我是否可以定义一个JSON模式(草案4),它要求许多属性中至少有一个具有特定的值。 为了说明这一点,下面是一个我希望验证失败的JSON示例: 但是,如果上面的任何(一个或多个)属性设置为,只有这样我才会期望它通过验证。 那么模式是什么呢? 非常感谢提前!

  • 我有一个如下的Json模式,当我在网上验证它时,比如http://jsonschemalint.com/draft4/#,它说它是有效的。我把“类型”改成了“对象”、“数组”、“字符串”,其余的结构保持不变。它仍然说是有效的模式。我的理解是当类型=对象时应该有“属性”,当类型=数组时应该有“项目”