Я пытаюсь проверить заголовок Accept в своем REST API, написанном на Node.js в среде Hapijs. Когда я запрашиваю свой ресурс у Firefox, который создает запрос со следующим заголовком accept:
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Теперь мой маршрут выглядит так:
{
method: 'GET',
path: '/cities',
handler: function (req, reply) {
... handler ...
},
config: {
validate: {
headers: Joi.object({
'accept': Joi.any().valid('application/json').required()
}).unknown()
}
}
}
Теперь я понял, что Joi не разбивает заголовок accept на какой-то массив. Я мог бы использовать регулярное выражение, например:
Joi.string().regex(/(application\/json)/)
Интересно, есть ли какой-либо другой способ, чем регулярное выражение, для проверки таких заголовков с несколькими значениями, особенно когда в игру вступит управление версиями API. У кого-нибудь есть идея?