RAML:示例与示例

问题描述 投票:0回答:1

在 mule 4 开发人员培训中进行演练 3-3 时,我无法理解为什么 RAML 方面示例有效,但示例无效。

环境:Anypoint-Design Center - API Designer RAML 1.0

错误:“错误:应具有必需的属性“code”应具有必需的属性“departureDate”应具有必需的属性“destination”应具有必需的属性“emptySeats”应具有必需的属性“origin”应具有必需的属性“price””

这是 REST API RAML 规范的相关摘录。

   /{ID}:
    get:
      responses:
        200:
          body:
            application/json:
              type: AmericanFlight
              example:
                output: !include examples/AmericanFlightExample.raml

但是如果我将示例更改为示例,它就会起作用。由于 uri 预计会检索一个而不是多个,因此我的印象是facet =“example:”是正确的。另外,对于使用facet =“examples:”我认为响应应该是一个数组(类型:AmericanFlight [])和示例raml以包含多个项目。以下是示例 raml

#%RAML 1.0 NamedExample
value:
    ID: 1 
    code: ER38sd
    price: 400
    departureDate: 2017/07/26
    origin: CLE
    destination: SFO
    emptySeats: 0
    plane: 
      type: Boeing 737
      totalSeats: 150

有人可以帮我理解为什么会这样吗?

mule raml anypoint-platform
1个回答
0
投票

这是使用 RAML 时常见的混淆,因为假设复数意味着多个示例作为数组,而 NamedExample 意味着不同的东西。

  • example:
    是一个示例,您只需添加或包含属性值。仅包含对象属性的值(RAML 1.0 规范链接)。
  • examples:
    用于作为
    map
    的多个示例,其中每个键都是示例的名称(RAML 1.0 规范链接)。这意味着数组不是此方面的有效类型。

请注意,在您的示例中,

value:
是示例的名称,而不是属性。例如,如果您向该文件添加第二个示例,它可能具有密钥
value2:

这种混淆非常常见,以至于 MuleSoft 文档中有一些页面来澄清 RAML 示例常见误解

© www.soinside.com 2019 - 2024. All rights reserved.