Невозможно устранить ошибки файла raml

Мне предоставили прикрепленный файл RAML для использования в Mule, но у меня возникают проблемы с разработкой того, как исправить ошибки в файле, и я даже не уверен, что этот файл raml соответствует стандартам. Когда я удаляю версию, я получаю сообщения об отсутствии {}, а также об отсутствии записи в блоке. Не могу понять, как их решить.

Ниже представлена ​​урезанная версия RAML:

#%RAML 0.8
---
title: Databox
version: v1
protocols: [HTTPS]
baseUri: https://databox/v1/{version}
mediaType: application/json
traits:
  - http-data: !include http-data.raml
resourceTypes: !include types.raml

documentation:
  - title: Home
    content: |
      Databox 1st draft

/stores:
  type:
    store:
      description: Stores
      dataSchema: !include stores.json

Характеристики (http-data.raml):

responses:
  200:
    description: |
      Success

Тип ресурса (types.raml):

- store:
    head:
      description: Retrieve data for <<description>>.
      is: [ http-data ]
    get:
      description: Retrieve data for <<description>>.
      responses:
        200:
          body:
            application/json:
              schema: |
               {
                "type": "object",
                "properties": {
                  "meta": {
                    "title": "Data",
                    "type": "object",
                    "properties": {
                      "createdOn": {
                        "type": "string",
                        "format": "date-time"
                      }
                    },
                    "required": [
                      "createdOn"
                    ]
                  },
                  "data": {
                   "type": "array",
                   "items": <<dataSchema>>
                  }
                },
                "required": [
                  "data"
                ]
               }
          description: |
            Success. Returns a JSON object containing all <<description>>.

Схема (store.json):

{
  "id": "http://localhost:8000/stores.json#",
  "$schema": "http://json-schema.org/draft-04/schema",
  "title": "Databox Store Schema",
  "type": "object",
  "properties": {
    "storeId": {
      "type": "string"
    },
    "storeDescription": {
      "type": "string"
    },
  },
  "required": [
    "storeId"
  ],
  "additionalProperties": false
}

Спасибо


person user3165854    schedule 14.12.2016    source источник
comment
Можете ли вы рассказать о точных ошибках, которые вы получаете?   -  person Pedro    schedule 14.12.2016


Ответы (1)


RAML действителен, за исключением того параметра <<dataSchema>>, который используется в схеме json, не уверен, что это допустимое использование параметров.

Я бы начал с замены этого <<dataSchema>> на json в store.json и повторил попытку.

Сообщите мне, работает ли это или какие ошибки вы получаете.

ОБНОВИТЬ:

Портал Anypoint от Mulesoft проверяет ваш RAML всего одним изменением, вы можете увидеть это здесь

person Pedro    schedule 14.12.2016
comment
Я заменил его ‹‹dataSchema›› на store.json, и у меня все еще есть ожидаемая ошибка ‹конец блока›, но я обнаружил, что BlockEntry выделен во второй строке RAML-файла (----) в Mule - person user3165854; 15.12.2016
comment
Удалите вторую строку --- - person Pedro; 15.12.2016
comment
Я пробовал это, но похоже, что ошибка перемещается в другое место. Я заметил, что если я удалю схему из resourceType, все ошибки исчезнут. Я перепечатал его, и ошибки возвращаются, когда я пытаюсь добавить требуемые, а также данные со ссылкой ‹‹dataSchema››. Добавление требуемых выглядит корректно, поэтому не уверен, почему это может вызвать ошибку, не уверен в dataSchema. - person user3165854; 15.12.2016
comment
Необходимо повторно использовать этот ответ и обновить его различными схемами (‹‹dataSchema››) в зависимости от вызова. - person user3165854; 15.12.2016
comment
Портал Mulesoft anypoint проверяет ваш RAML с помощью всего этого единственного изменения, вы можете увидеть его здесь: anypoint.mulesoft.com/apiplatform/541111111 / # / portals / - person Pedro; 15.12.2016
comment
Спасибо. Я обнаружил, что могу добавить ‹‹dataSchema››, если меняю элементы на элемент, и это устраняет эту ошибку, но по какой-то причине я не могу указать обязательные поля - person user3165854; 15.12.2016