问题描述
首先,这个问题与 How to define an array of a type in an external file in Raml? 类似,但不同的是,我想创建一个 DataType (A),它的属性是另外两个 DataType B 和 C 的并集。
例如,这里是 B RAML:
#%rAML 1.0 DataType
type: object
properties:
some: integer
这是 C RAML:
#%rAML 1.0 DataType
type: object
properties:
other: string
最后是有问题的 A RAML:
#%rAML 1.0 DataType
type: object
properties:
union: !include B | !include C
#%rAML 1.0 DataType
type: object
properties:
union:
type: union
items: !include B | !include C
但这也行不通。任何想法如何做到这一点?
谢谢!
解决方法
我找到了答案。它是使用 Library 而不是 DataType 片段。您可以在库定义中嵌套库引用。
因此,您可以有一个库片段,其中定义了 B,另一个定义了 C,然后另一个定义了 A 为 B 和 C 的并集。问题解决了。
这里是详细说明库和片段的文章的链接:https://medium.com/raml-api/raml-101-libraries-and-datatypes-fragments-1889b2e82c27
完整的信用证转给 Mulesoft 内部的匿名助手,他将我指向了这篇文章。谢谢,你知道你是谁。