Как вы ссылаетесь на пример тела запроса в rAML?

Можно ли ссылаться на блок json из того же файла rAML для примеров запроса/ответа? Судя по спецификации, нет другого способа сделать это, кроме внешнего файла; но я хотел бы, чтобы пример и схема жили рядом друг с другом, если это возможно. Очень похоже на то, как вы можете использовать схему:

schemas:
  - awesomeSchema: |
      { ... }
# Is this possible?
examples: | 
  - awesomeExample: |
      { ... }

/awesome:
  get:
    responses:
      200:
       body:
          application/json:
            schema: awesomeSchema
            example: awesomeExample

person Patrick Auld    schedule 19.06.2014    source источник


Ответы (2)


Это будет возможно в RAML 1.0, посмотрите https://github.com/raml-org/raml-spec/issues/107

person Quanlong    schedule 07.10.2014
comment
Рад слышать. Я с нетерпением жду этого. - person Patrick Auld; 23.10.2014

Хотя это не является частью спецификации, на самом деле поддерживается, поскольку RAML является надмножеством YAML, у которого есть синтаксис для DRY-обработки повторяющихся блоков. Цитирую спецификацию:

Повторяющиеся узлы (объекты) сначала идентифицируются якорем (отмечены амперсандом — «&»), а затем им присваиваются псевдонимы (обозначаются звездочкой — «*»).

Применяя это к вашему примеру:

/awesome:
  get:
    responses:
      200:
       body:
          application/json:
            example: &awesomeExample |
              {
                id: 123,
                type: "foobar"
              }
/delicious:
  get:
    responses:
      200:
        body:
          application/json:
            example: *awesomeExample
person Amr Mostafa    schedule 31.07.2014
comment
Спасибо за ответ. Я больше искал способ определить схему и пример рядом или, по крайней мере, рядом друг с другом. Можно ли создать якорь в корне документа или, по крайней мере, вне определения ресурса? - person Patrick Auld; 05.08.2014
comment
Насколько я знаю, RAML не позволяет (пока?) размещать пользовательские свойства в спецификации, и я не могу придумать стандартное свойство RAML, которое находится вне определений ресурсов и может элегантно содержать примеры. Спецификация в значительной степени WIP, я рекомендую вам отправить вопрос в проект на github с вашим вариантом использования: github.com/raml-org/raml-spec - person Amr Mostafa; 10.08.2014