В настоящее время я использую пакет swagger-express-middleware
для проверки запросов к моему документу Swagger API.
После их документа я реализовал промежуточное ПО иобработал ошибку, как показано ниже
createMiddleware(swaggerDoc, app, (middlewareError, middleware) => {
app.use(middleware.metadata());
app.use(middleware.parseRequest());
app.use(middleware.validateRequest());
// Error handler to send the swagger validation response
app.use((err, req, res, next) => {
res.status(err.status).json({
type: 'SCHEMA VALIDATION FAILED',
message: err.message
});
});
});
Если какая-либо ошибка в схеме, ответ, который я получаю от промежуточного программного обеспечения, имеет свойство message
с описанием ошибки, которая, очевидно, является важной частью ответакак это говорит реквестеру, чего не хватает.К сожалению, содержание message
не очень интуитивно понятно или читабельно.Например, если в запросе отсутствует свойство, описание будет
"message": "The \"pinDetails\" body parameter is invalid ({\"Pindd\":\"asd\"}) \nJSON Schema validation error. \nData path: \"\" \nSchema path: \"/required/0\" \nMissing required property: pin"
. Как видите, сообщение не очень интуитивное и чистое, что затрудняет его чтение.Итак, мой вопрос: предоставляет ли пакет какой-либо способ вернуть более чистую версию сообщения или каким-либо другим способом, которым я могу сделать то же самое?
Примечание. Поскольку сообщение является многострочным и, что наиболее важно, динамическим , я не могу просто разбить или заменить строки, иначе это будет выглядеть как несколько несвязанных предложений, собранных вместе (может быть, хужеесли это то, что я в конечном итоге сделаю, но определенно не то, что я бы предпочел).