正确创建 RAML 1.0 命名示例
Properly create a RAML 1.0 Named Example
我正在使用 RAML 1.0 指定 API,但在使用命名示例片段类型时遇到问题。我查看了大量教程和示例,但找不到有关此资源预期内容的权威指南。
我正在使用 MuleSoft Anypoint Platform API Designer。 (2020 年 5 月)
这是我的数据类型定义:
#%RAML 1.0 DataType
type: object
properties:
display-name:
required: true
type: string
note-properties:
required: true
type: object
note-data:
required: true
type: any
这是我的命名示例片段:
#%RAML 1.0 NamedExample
noteExample:
display-name: greeting
note-properties: read-only
note-data: Hello world
这里是引用这些文件的根文件:
#%RAML 1.0
title: sandbox API
types:
noteType: !include definitions/noteType.raml
/note:
get:
responses:
200:
body:
application/json:
type: noteType
examples: !include examples/noteExample.raml
问题是解析器(APIKit 插件)将此报告为错误。这是来自设计中心的错误消息:
['note-properties'] should be object at /examples/noteExample.raml (3, 1)
我也试过更简单的 DataType 定义,但我得到了同样的错误。
我的命名示例文件中是否存在明显错误。我知道必须有一个明确的规范,但到目前为止我发现的是各种(偶尔相互矛盾的)例子。
...好吧,这很尴尬。错误消息准确说明了问题所在。
它清楚地写着“XXX 应该是一个对象”
当我将命名示例更改为:
#%RAML 1.0 NamedExample
noteExample:
type: object
properties:
status: read-only
note-data: Hello world
...
的值
note-properties
是一个实际的对象而不是一个简单的字符串(就像在我的 OP 中那样),那么它工作得很好。
我正在使用 RAML 1.0 指定 API,但在使用命名示例片段类型时遇到问题。我查看了大量教程和示例,但找不到有关此资源预期内容的权威指南。
我正在使用 MuleSoft Anypoint Platform API Designer。 (2020 年 5 月)
这是我的数据类型定义:
#%RAML 1.0 DataType
type: object
properties:
display-name:
required: true
type: string
note-properties:
required: true
type: object
note-data:
required: true
type: any
这是我的命名示例片段:
#%RAML 1.0 NamedExample
noteExample:
display-name: greeting
note-properties: read-only
note-data: Hello world
这里是引用这些文件的根文件:
#%RAML 1.0
title: sandbox API
types:
noteType: !include definitions/noteType.raml
/note:
get:
responses:
200:
body:
application/json:
type: noteType
examples: !include examples/noteExample.raml
问题是解析器(APIKit 插件)将此报告为错误。这是来自设计中心的错误消息:
['note-properties'] should be object at /examples/noteExample.raml (3, 1)
我也试过更简单的 DataType 定义,但我得到了同样的错误。
我的命名示例文件中是否存在明显错误。我知道必须有一个明确的规范,但到目前为止我发现的是各种(偶尔相互矛盾的)例子。
...好吧,这很尴尬。错误消息准确说明了问题所在。
它清楚地写着“XXX 应该是一个对象”
当我将命名示例更改为:
#%RAML 1.0 NamedExample
noteExample:
type: object
properties:
status: read-only
note-data: Hello world
...
的值note-properties
是一个实际的对象而不是一个简单的字符串(就像在我的 OP 中那样),那么它工作得很好。