MissingRefError - перечисление удаленного REST Webservice схемы json с использованием $ ref не разрешает ссылку на удаленный json - PullRequest
0 голосов
/ 06 марта 2019

Я использую Angular6-json-schema-form для генерации угловых форм из схем JSON.

Я пытаюсь заполнить перечисление схемы из удаленного веб-сервиса REST, используя ссылки " $ ref ", но я получаю MissingRefError.

Вот моя схема:

{
"$id": "http://www.mocky.io/v2/5c7ff2e833000000338484c2.json#",
"title": "A rather large form",
"type": "object",
"properties": {
  "noenum": { "$ref": "#/definitions/largeEnum" }
}
}

JSON Внутри ссылки есть следующее:

{ 
"definitions": {
"largeEnum": {
  "type": "string",
  "enum": [
    "option #0",
    "option #1",
    "option #2",
    "option #3",
    "option #4"
  ]
}
}
}

Если я делаю это локально, это работает:

{
"definitions": {
  "largeEnum": {
    "type": "string",
    "enum": [
        "option #0",
        "option #1",
        "option #2",
        "option #3",
        "option #4"
    ]
  },
  "title": "A rather large form",
  "type": "object",
  "properties": {
    "noenum": {"$ref": "#/definitions/largeEnum" }
   }
}

Пожалуйста, смотрите скриншот для ошибки

Error From Console

Мне нужно, чтобы он работал удаленно из размещенного файла JSON или конечной точки REST.

1 Ответ

0 голосов
/ 07 марта 2019

Из вашего комментария похоже, что вы думаете, что $ id разрешает удаленную ссылку. Это не правильно, хотя; $id определяет способ, которым вы можете обратиться к текущей схеме.

Вместо этого вам нужно использовать ключевое слово "$ref" для ссылки на удаленную схему.

(Независимо от того, активно ли ваш валидатор извлекает удаленный URL-адрес или требует, чтобы вы включили содержимое этой схемы самостоятельно, зависит от реализации валидатора.)

Вы можете сделать:

{
    "title": "A rather large form",
    "type": "object",
    "properties": {
        "noenum": {
            "$ref": "http://www.mocky.io/v2/5c7ff2e833000000338484c2.json#/definitions/largeEnum"
        }
    }
}
...