Проверка правильности ввода через схему json - PullRequest
0 голосов
/ 27 марта 2020

Допустим, я должен принять шаблон от пользователя.


Pattern.compile (regex);


Выдает ошибку, если недопустимое регулярное выражение


Можем ли мы сделать то же самое со схемой json для проверки ввода регулярных выражений без использования кода (java или какой-нибудь другой язык)?


Если да, то как мы можем это сделать?

1 Ответ

0 голосов
/ 29 апреля 2020

Проверка ввода регулярного выражения через json схему

Чтобы принять / проверить тело запроса, содержащее поле ввода для регулярного выражения. Обычно мы должны использовать Pattern.compile (myRegex) , где myRegex является полем ввода для регулярного выражения. Если он выдает ошибку (например, PatternSyntaxException в java), он недействителен, в противном случае он является допустимым регулярным выражением.


Это может быть сделано в схеме json также

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "description": "This is for validating input json request body containing myRegex field which accepts regex",
  "required": [
    "myRegex"
  ],
  "properties": {
    "myRegex": {
      "type": "string",
      "format": "regex"
    }
  }
}

Эта схема проверяет приведенные ниже тела запроса POST / PUT


{

    "myRegex":"*8"
}

Указанное выше тело запроса недопустимо, поскольку "* 8" не является допустимым регулярным выражением


{

    "myRegex":"^[_A-Za-z0-9][-_A-Za-z0-9.]*$"
}

Это действительно в соответствии со схемой


Ссылка: https://json-schema.org/understanding-json-schema/reference/string.html#format

Атрибут "regex" был недавно введен в черновик 7

...