目前AWS API Gateway 的校验器只适用于默认的域名,对于自定义域名则不生效。可以通过在Lambda函数中使用正则表达式进行校验,或是使用第三方库来实现校验功能。
代码示例:
使用正则表达式校验:
exports.handler = async (event) => {
const param1 = event.queryStringParameters.param1;
const param2 = event.queryStringParameters.param2;
const param1_regex = /^[a-zA-Z]+$/
const param2_regex = /^\d+$/
if(!param1_regex.test(param1)) {
return {
statusCode: 400,
body: 'param1 must only contain letters'
}
}
if(!param2_regex.test(param2)) {
return {
statusCode: 400,
body: 'param2 must only contain digits'
}
}
return {
statusCode: 200,
body: 'Validation successful'
}
}
使用第三方库进行校验:
const Joi = require('joi');
exports.handler = async (event) => {
const schema = Joi.object({
param1: Joi.string().alphanum().required(),
param2: Joi.number().required()
});
const { error } = schema.validate(event.queryStringParameters);
if(error) {
return {
statusCode: 400,
body: error.details[0].message
}
}
return {
statusCode: 200,
body: 'Validation successful'
}
}