Я использую схему 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?Любое предложение?