我们已经升级到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
types-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
telephone-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中删除了uses语句,则不会识别contactDetails数据类型。
如果有人在这里指出问题或解释Anypoint Studio如何导入使用非常有用的片段的规范。
谢谢。
答案 0 :(得分:0)
这是一个较晚的答复,但今天我碰巧遇到了这个问题,我的搜索使我想到了您的问题。
对我来说,问题是contactDetails.raml文件中缺少!include
。我在Anypoint Studio中遇到了同样的问题,而我的解决方法是:
#%RAML 1.0 DataType
uses:
contactDetails: !include ../types-library.raml
properties:
name:
type: string
telephone:
type: contactDetails.telephoneNumber
不幸的是,Anypoint Studio并未提供任何关于为何出现RAML错误的良好信息,而只是告诉您出了什么问题。