У меня есть приложение Node с использованием express-openapi-validator, которое принимает файл спецификации api (который является файлом .yml) с проверкой запроса и ответа. Пакет express-openapi-validator направляет запрос в файл обработчика (определенный в спецификации). Вот как может выглядеть один из обработчиков:
function getUsers(req, res) {
const { 'x-user-id': userId } = req.headers
res.status(200).json(`Your userId is ${userId}`)
}
У меня есть функция ключа API, где пользователи могут получить новый ключ API, и другие конечные точки, которым требуется, чтобы у вызывающей стороны был ключ API в заголовках запроса для проверки запроса.
Я знаю, что можно использовать промежуточное программное обеспечение для проверки запроса, но я не могу понять, как использовать настраиваемое промежуточное программное обеспечение с пакетом express-openapi-validator на выбранных конечных точках.
Например:
GET / apikey = не требует ключа api GET / resource = требуется ключ api
Как мне это настроить?
Вот как выглядит код валидатора openapi в моем app.js:
new OpenApiValidator({
apiSpec,
validateResponses: true,
operationHandlers: path.join(__dirname, './handlers'),
})
.install(app)
.then(() => {
app.use((err, _, res) => {
res.status(err.status || 500).json({
message: err.message,
errors: err.errors,
});
});
});