Почему этот шаблон регулярного выражения из схемы json не проверен в swagger? - PullRequest
0 голосов
/ 19 июня 2019

Я использую схему json для проверки входных данных моего определения Swagger с использованием Open API 3.0.В редакторе Swagger проверка работает отлично, если я пытаюсь ввести строку в числовое поле.Однако я заметил, что шаблон свойства name не работает, потому что, когда я вставляю строчные буквы, swagger считает, что это правильные данные, что неверно.

Я заметил, что у меня та же проблема, если я использую minLength для проверки длины строки.Кроме того, схема json работает нормально, потому что она правильно проверяет объект json, если я использую строчные символы.

Это мое определение Swagger:

openapi: 3.0.0
info:
  version: '1.0.0'
  title: 'EXAMPLE1'
  description: 'Example API to test jsonschema'
  termsOfService: https://smasrtbear.com/terms-of-use
  contact:
    name: something
    url: smartbear.com
    email: aaa@asdad.net
  license:
    name: SmartBear License
    url: http://license.foo.com
servers:
  - url: https://dev.foo.com
    description: Dev Server
  - url: https://prod.foo.com
    description: Prod Server
paths: 
  /example:
    get:
      description: To get some information
      parameters:
        - name: id
          in: query
          description: Some Id example
          schema:
            $ref: 'http://localhost:5555/mytest#/properties/id'
        - name: name
          in: query
          description: some name for example
          schema:
            $ref: 'http://localhost:5555/mytest#/properties/name'
        - name: price
          in: query
          description: some price for example
          schema:
            $ref: 'http://localhost:5555/mytest#/properties/price'
      responses:
        200:
          description: Successful example
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    id:
                      type: integer
                      example: 4
                    name:
                      type: string
                      example: John Smith
                    price:
                      type: integer
                      example: 114

Обратите внимание, что я использую #ref для подключения к удаленной схеме json

Это схема.

{
  "definitions": {},
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "http://example.com/example.json",
  "type": "object",
  "title": "The Root Schema",
  "required": [
    "id",
    "name",
    "price"
  ],
  "properties": {
    "id": {
      "$id": "/properties/id",
      "type": "integer",
      "title": "The Id Schema",
      "default": 0,
      "examples": [
        1
      ]
    },
    "name": {
      "$id": "/properties/name",
      "type": "string",
      "title": "The Name Schema",
      "default": "",
      "examples": [
        "A GREEN DOOR"
      ],
      "pattern": "^([A-Z]*)$"
    },
    "price": {
      "$id": "/properties/price",
      "type": "number",
      "title": "The Price Schema",
      "default": 12,
      "examples": [
        12
      ]
    }
  }
}

Это недопустимо в swagger.

{"id": 4, "name":" abcdefg "," price ": 114}

Будет ли проблема с OpenApi3.0?Любое предложение?

1 Ответ

0 голосов
/ 24 июня 2019

Я переключил форму SwaggerEditor на SwaggerHub.

...