首页 > 解决方案 > middy/validator:如何为 JSON 字符串编写模式

问题描述

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

输出模式

const outputSchema = {
  required: ['body', 'statusCode'],
  properties: {
    body: {
      type: 'object'
    },
    statusCode: {
      type: 'number'
    }
  }
}

在 API 中

const handler = async (event, context) => {
   ...
   return {
        statusCode: 200,
        body: JSON.stringify(resp)
      };
}
...

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

我收到验证错误,我可以看到在 API 中,body是 JSON 字符串,但在模式中,body是对象。

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

任何建议表示赞赏。

标签: aws-lambdamiddlewarejsonschemaserverless-framework

解决方案


在您定义的架构中添加“类型”属性并将其设置为严格类型。在你的情况下:

const schema{
type: 'object' //this!
required: ['body', 'statusCode'],
.....
}

为我工作。


推荐阅读