我正在使用 ajv 和这个@middy/validator中间件为无服务器端点编写验证模式。文档中有一条说明,中间件可以使用外部插件。但不清楚如何应用它们,也没有例子。我想ajv-errors
为自定义错误消息使用插件,https://github.com/ajv-validator/ajv-errors。
请给我一个关于如何应用外部插件的链接或给我一个例子。提前致谢!
我正在使用 ajv 和这个@middy/validator中间件为无服务器端点编写验证模式。文档中有一条说明,中间件可以使用外部插件。但不清楚如何应用它们,也没有例子。我想ajv-errors
为自定义错误消息使用插件,https://github.com/ajv-validator/ajv-errors。
请给我一个关于如何应用外部插件的链接或给我一个例子。提前致谢!
我不熟悉ajv,但我使用过middy/validator。
假设您有一个 lambda 函数,它需要一个 JSON 主体并具有下一个简单代码(只返回接收到的 JSON 主体):
async function test(event, context) {
return {
statusCode: 200,
body: JSON.stringify(event.body),
};
}
export const handler = test;
我的建议(以及对我有用的)如下:
import middy from '@middy/core';
import httpEventNormalizer from '@middy/http-event-normalizer';
import jsonBodyParser from '@middy/http-json-body-parser';
import httpErrorHandler from '@middy/http-error-handler';
export default handler => middy(handler)
.use([
httpEventNormalizer(),
jsonBodyParser(),
httpErrorHandler()
]);
import middleware from '../lib/middleware'
import validator from '@middy/validator';
import yourSchema from '../lib/yourSchema';
async function test(event, context) {
return {
statusCode: 200,
body: JSON.stringify(event.body),
};
}
export const handler = middleware(test)
.use(validator({inputSchema: yourSchema}));
其中“yourSchema”是您构建的验证模式。