如何在Raml数据类型片段的外部文件中定义类型的联合?

问题描述

首先,这个问题与 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

在上述帖子的解决方案中,A RAML 将具有以下内容

#%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 内部的匿名助手,他将我指向了这篇文章。谢谢,你知道你是谁。