MuleSoft Импорт спецификации RAML в Anypoint Studio с фрагментами RAML - PullRequest
0 голосов
/ 28 июня 2018

Мы обновились до платформы Crowd Release и в настоящее время создаем спецификации API, которые используют фрагменты в соответствии с рекомендациями MuleSoft. Однако мы можем импортировать RAML, но не можем генерировать потоки. Нет ошибок - нет предупреждений - ничего.

Я включил пример.

api.raml

#%RAML 1.0
version: v1
title: api
types:
  contactDetails: !include library/types/contactDetails.raml

/contact:
  post:
    body: 
      application/json:
        type: contactDetails

типы-library.raml

#%RAML 1.0 Library

types:
  telephoneNumber: !include ../exchange_modules/fragment-flows-problem-fragment/1.0.0/telephone-number.raml

contactDetails.raml

#%RAML 1.0 DataType
uses:
  contactDetails: ../types-library.raml

properties:
  name:
    type: string
  telephone:
    type: contactDetails.telephoneNumber

phone-numbers.raml (фрагмент)

#%RAML 1.0 DataType

description: |
  **includes validation applicable to a contact telephone number**
  ***
  - Minimum length 9
  - Maximum length 15

type: string
displayName: Telephone Number
minLength: 9
maxLength: 15
pattern: ^[\d ]+$
examples:
  telephoneNumber1: "01433000000"
  telephoneNumber2: "01433 000000"

Я просто добавлю, что RAML действителен как в Design Center, так и в Exchange.

Просто добавьте: если мы удалим инструкцию использования в contactDetails.raml, тип данных contactDetails не будет распознан.

Если кто-то укажет здесь на проблему или объяснит, как Anypoint Studio может импортировать спецификации, которые используют фрагменты, которые были бы чрезвычайно полезны.

Спасибо.

1 Ответ

0 голосов
/ 02 ноября 2018

Это поздний ответ, но я столкнулся с этой проблемой сегодня, и мой поиск привел меня к вашему вопросу.

Проблема для меня - отсутствие !include в файле contactDetails.raml. У меня была такая же проблема в Anypoint Studio, и мое исправление было бы:

#%RAML 1.0 DataType
uses:
  contactDetails: !include ../types-library.raml

properties:
  name:
    type: string
  telephone:
    type: contactDetails.telephoneNumber

Anypoint Studio, к сожалению, не дает никакой хорошей информации о том, почему произошла ошибка RAML, а просто говорит вам, что что-то не так.

...