如何在 Raml 的外部文件中定义一个类型的数组?

Posted

技术标签:

【中文标题】如何在 Raml 的外部文件中定义一个类型的数组?【英文标题】:How to define an array of a type in an external file in Raml? 【发布时间】:2016-04-25 11:55:28 【问题描述】:

如果我有一个文件定义了数据类型SimpleDuple,并且在另一个文件中定义了另一个名为DiscreetFilter 的数据类型,我希望有一个属性values 成为SimpleDuple 的数组,我将如何在其中使用包含?

考虑 SimpleDuple 的文件:

#%RAML 1.0 DataType
type: object
properties:
  id: string
  name: string

我想要创建属性的另一个定义是 values 属性中的 SimpleDuples 数组(但我必须使用内联定义)。

#%RAML 1.0 DataType
type: object
properties:
  field: string
  name: string
  type:  enum: [ discreet ] 

  # Ideally this property would use an include
  # in some way to express the equivalent of SimpleDuple[]
  values: 
    type: array
    properties:
      id: string
      name: string

如果这两种类型在同一个文件中,我会将values 属性设置为SimpleDuple[]。如果它不是一个数组,我会将包含作为 values 属性的值。

但是如何同时使用包含和数组,而不是使用我在复制代码中使用的内联定义?

【问题讨论】:

【参考方案1】:

您应该能够做到以下几点:

chapter.raml

#%RAML 1.0 DataType

type: object
properties:
  name: string

storyboard.raml

#%RAML 1.0 DataType

type: object
properties:
  name: string
  chapters:
    type: array
    items: !include chapter.raml

希望有帮助?!

【讨论】:

以上是关于如何在 Raml 的外部文件中定义一个类型的数组?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 RAML 1.0 中覆盖对象数组属性类型

如何在 RAML 1.0 中定义地图

如何在 RAML 中定义一个全局变量

RAML 文件中的命名空间

RAML 默认信封

RAML 1.0,映射类型复杂的正则表达式