Проверка схемы JSON не показывает ошибок - PullRequest
1 голос
/ 29 октября 2019

Я использую Ajv версии 6.10.2 для проверки простой схемы Json, которая разделена на два файла, но дело в том, что я не получаю ошибок при выполнении проверки, даже если json используется для проверкиневерно.

Это две части схемы:

root.json

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "http://test.com/schemas/root.json",
  "title": "test",
  "description": "test",
  "type": "object",
  "properties": {
    "entrypoint": { "$ref": "entrypoint.json" }
  },
  "additionalProperties": false,
  "required": ["entrypoint"]
}

entrypoint.json

{
  "$id": "http://test.com/schemas/entrypoint.json",
  "description": "test object",
  "type": "string"
}

Я создаю экземплярAjv вот так

import Ajv from 'ajv';
import root from './root.json';
import entrypoint from './entrypoint.json';

const ajv = new Ajv({
  allErrors: true,
  schemas: [
   test,
   entrypoint,
  ],
});

Это проверочный вызов

const validate = ajv.getSchema('http://test.com/schemas/root.json');

И это JSON, используемый для проверки схемы

{
    entrypoint: '',
    incorrect: {}
}

Получается какнедействительный, но он не показывает никаких ошибок, я давно об этом просматриваю, но не нашел причину.

Заранее спасибо

1 Ответ

0 голосов
/ 30 октября 2019

Ваша проблема в том, что у вас нет схемы с $ id http://test.com/schemas/test.json. Вам необходимо передать идентификатор (в вашем случае полный URI) схемы, которую вы хотите использовать для проверки, в getSchema.

Я вижу, вы скопировали из документации URI, показанный какпример.

...