在 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
有人可以帮我理解为什么会这样吗?
这是使用 RAML 时常见的混淆,因为假设复数意味着多个示例作为数组,而 NamedExample 意味着不同的东西。
example:
是一个示例,您只需添加或包含属性值。仅包含对象属性的值(RAML 1.0 规范链接)。examples:
用于作为 map
的多个示例,其中每个键都是示例的名称(RAML 1.0 规范链接)。这意味着数组不是此方面的有效类型。请注意,在您的示例中,
value:
是示例的名称,而不是属性。例如,如果您向该文件添加第二个示例,它可能具有密钥 value2:
。