Я бы хотел зафиксировать JSON опечаток и других нарушений схемы. Изначально я хотел использовать circe-json-schema
, но версия scala, предоставляемая в нашей среде выполнения, - 2.11, которая не поддерживается указанной библиотекой. Я обратился к полуавтоматическому c декодированию, но, к сожалению, он игнорирует любые «дополнительные» атрибуты во входящем JSON. Пример:
val json = json"""{ "pepe": "corre", "tito": "tira" }"""
case class Pepe(pepe: String)
implicit val pepeDecoder: Decoder[Pepe] = deriveDecoder
/* ideally, because "tito" is extra but the assertion nevertheless fails */
assert(json.as[Pepe] == Left("decoding failure"))
Мой другой вариант - вручную пересечь целое JSON с / 1009 * ожиданиями, но я думаю, что это пешеход. Если в мире circe есть какие-либо другие варианты, включая сосуществующую с более высокой scala основной версией (для использования circe-json-schema
) с / в Maven, пожалуйста, сообщите.