Я использую swagger 2.0 с node.js express 4.12.3 и mysql db.
Я создал следующую схему -
Country:
type: "object"
properties:
id:
type: "integer"
readOnly: true
description: "Country Id"
country:
type: "string"
description: "Country name"
created_at:
type: "string"
readOnly: true
format: "date-time"
description: "Country record creation date"
deleted_at:
type: "string"
format: "date-time"
description: "Country record delete date"
required:
- country
Здесь поле delete_at будет пустым и не будет присутствовать в БД, пока запись не будет удалена. Мой экспресс-сервер nodejs возвращает дату следующим образом:
[{"id":4,"страна":"g","created_at":"2018-01-29T04:51:46.000Z","deleted_at":null},{"id":5,"страна" :"gaaaf","created_at":"2018-01-29T04:54:59.000Z","deleted_at":null},{"id":6,"country":"abcd","created_at":"2018 -01-29T04:57:02.000Z","deleted_at":null}]
Когда я пытаюсь сделать вызов отдыха через swagger-ui, я получаю следующую ошибку:
"message":"Response validation failed: failed schema
validation","code":"SCHEMA_VALIDATION_FAILED","failedValidation":true,
{"errors":[{"code":"INVALID_TYPE","message":"Expected type string but found type null","path":["5","deleted_at"],"description":"Country record delete date"},
Прочитав документы, я сделал следующее:
deleted_at:
type: "string"
format: "date-time"
nullable: true
description: "Country record delete date"
Затем я начал получать эту ошибку проверки в swagger-ui
сообщение: "Дополнительные свойства не разрешены: допустимо значение NULL"
Я попытался установить тип объекта из строки, но даже это не сработало.
deleted_at:
type: "object"
format: "date-time"
nullable: true
description: "Country record delete date"