Форматы для использования в ответе с помощью fast-json-stringify

Что я хочу сделать, так это добавить проверку к ответу схемы от маршрута fastify.

Следуя документации Fastify здесь, мы можем увидеть это

Ajv для проверки запроса fast-json-stringify для сериализации тела ответа

Что касается улучшения и добавления проверок ответа, я хочу проверить схему при отправке ответа.

fast-json-stringify поддерживают различные параметры, включая формат, но если вы читаете в документации они сказали, что поддерживают схему JSON. Jsonschema поддерживает формат электронной почты, который вы можете увидеть здесь как встроенный формат, но когда я пытаюсь использовать его в Fastify, вот так:

{
  response: {
    200: {
      type: 'object',
      required: ['email'],
      properties: {
        email: {
          type: 'string',
          format: 'email',
        }
      }
    }
  }
}

И попробуйте вернуть ответ на это объявление

reply.code(200).send({ email: 'test' })

Единственная проверка, которую я могу сделать, это когда я устанавливаю целочисленный тип и пытаюсь вернуть строку.

Знаете ли вы, можно ли использовать форматы ajv с fast-json-stringify для добавления проверки в схему ответа, а также использовать форматы из ajv и добавлять новые?

Спасибо заранее!


person jmanuelrosa    schedule 09.02.2021    source источник


Ответы (1)


fast-json-stringify выполняет сериализацию, а не проверку.

Предоставленная ему схема json будет использоваться для сериализации только объявленных properties и некоторых проверок типов, таких как integer или arrays.

введите здесь описание изображения

Чтобы достичь своей цели, вы должны использовать этот плагин: fastify-response-validation это добавит этап проверки вашего тела ответа перед процессом сериализации.

person Manuel Spigolon    schedule 10.02.2021
comment
Большое спасибо! Я не знал этого плагина :D - person jmanuelrosa; 11.02.2021