首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >middy/validator:如何为JSON字符串编写模式

middy/validator:如何为JSON字符串编写模式
EN

Stack Overflow用户
提问于 2020-07-10 22:33:41
回答 2查看 1.3K关注 0票数 0

我正在尝试在无服务器框架中验证REST API resp格式。使用middy/validator

输出模式

代码语言:javascript
复制
const outputSchema = {
  required: ['body', 'statusCode'],
  properties: {
    body: {
      type: 'object'
    },
    statusCode: {
      type: 'number'
    }
  }
}

在API中

代码语言:javascript
复制
const handler = async (event, context) => {
   ...
   return {
        statusCode: 200,
        body: JSON.stringify(resp)
      };
}
...

export const handler = middy(handler).use(
  validator({ outputSchema: outputSchema })
);

我从验证中收到了错误,我可以看到在API中,body是一个JSON字符串,但在schema中,body是一个对象。

如何编写模式来验证JSON字符串的结构

任何建议都是值得感谢的。

EN

回答 2

Stack Overflow用户

发布于 2020-07-13 13:55:06

您发送的stringified响应将不适用于模式,但该响应不是特定于serverless的-它是api网关代理所需的响应。尝试返回非字符串化的结果,并使用另一个中间件来格式化响应。查看autoproxyresponse。或者编写自己的代码来处理最终的格式化。

票数 1
EN

Stack Overflow用户

发布于 2021-06-01 15:12:17

在您定义的模式中添加" type“属性,并将其设置为strict type。在您的案例中:

代码语言:javascript
复制
const schema{
type: 'object' //this!
required: ['body', 'statusCode'],
.....
}

对我很管用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62836558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档