aws-lambda - 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 字符串的结构
任何建议表示赞赏。
解决方案
在您定义的架构中添加“类型”属性并将其设置为严格类型。在你的情况下:
const schema{
type: 'object' //this!
required: ['body', 'statusCode'],
.....
}
为我工作。
推荐阅读
- c# - 当我更新属性时,texblock的文本不会改变,为什么?
- paypal - PayPal API - 在一个订单中设置多种货币
- python - 如何通过 PyPDF2 从 PDF 表单中获取特定元素
- sql - 在 ER 图中与供应商关系与成分关系的供应商关系有问题
- flutter - 有没有办法在颤动中制作漂亮的下拉菜单?
- java - Java Streams:为什么我们可以在 map 中传递非静态方法引用
- pylint - 什么是 pylint 退出代码 28?
- azure-ad-b2c - 问:Azure AD B2C:SAML IDP 向 OpenIdConnect 发起,可以吗?
- css - 字体真棒图标未呈现
- javascript - 有没有办法使用javascript激活右键单击浏览器的滚动条