将特征或资源类型和名称添加到特征和资源类型外部文件时,RAML 显示错误
RAML showing error when adding trait or resource type and names into trait and resoucre type external files
我正在使用 Mule 4 和 Anypoint Studio 7。
我一直在重构一个 RAML 文件,使 Traits 和 ResourceTypes 在它们自己的文件中,这样它们就可以从主 RAML 文件中引用。主 RAML 文件以红色突出显示引用,并指出外部文件中存在错误,并且不清楚错误是什么。
我注意到,当我从外部文件中删除 trait: 或 resourceType: 以及 trait 或 resourceType 的名称时,它可以正常工作。
我认为如果你也愿意的话,你可以给你的特征和资源类型添加名称,所以我使用的语法不正确,或者当你将特征和资源类型移到主 RAML 之外时,每个例如特征需要自己的文件?
示例:资源类型
导致错误:
#%RAML 1.0 ResourceType
resourceType:
genericData:
description: Generic data resource
is: [headers]
get:
description: Get all <<resourcePathName>>
is: [myDataResponse]
post:
description: Update <<resourcePathName>>
body:
application/json:
example: examples/data.json
is: [mySuccessResponse]
错误消失
#%RAML 1.0 ResourceType
description: Generic data resource
is: [headers]
get:
description: Get all <<resourcePathName>>
is: [myDataResponse]
post:
description: Update <<resourcePathName>>
body:
application/json:
example: examples/data.json
is: [mySuccessResponse]
示例:特质
导致错误:
#%RAML 1.0 Trait
trait:
messageResponse:
responses:
200:
body:
application/json:
example: examples/success.json
错误消失
#%RAML 1.0 Trait
responses:
200:
body:
application/json:
example: examples/success.json
谢谢
如果文件以 RAML 片段标识符行开头,并且片段标识符不是库、覆盖或扩展,则根据相关的 RAML 片段标识符行删除后的文件内容必须在结构上有效RAML 规范。
所以如果是Trait,就不需要在开头加上trait:
,如果是ResourceType,就不需要在开头加上resourceType:
。
它们也不能在片段中命名。导入 raml 时需要定义名称:
#%RAML 1.0
title: My API
traits:
messageResponse: !include resourceTypes/messageResponse.raml
不过您可以在库中为它们命名。类似于:
#%RAML 1.0 Library
traits:
messageResponse:
responses:
200:
body:
application/json:
example: examples/success.json
然后您可以结合数据类型片段和库使其变得更好。完整示例:
#%RAML 1.0 Trait
responses:
200:
body:
application/json:
example: examples/success.json
mylib.raml:
#%RAML 1.0 Library
traits:
messageResponse: !include traits/messageResponse.raml
myapi.raml:
#%RAML 1.0
title: My API
uses:
myLib: library.raml
/resource:
is: [ myLib.messageResponse ]
get:
我正在使用 Mule 4 和 Anypoint Studio 7。
我一直在重构一个 RAML 文件,使 Traits 和 ResourceTypes 在它们自己的文件中,这样它们就可以从主 RAML 文件中引用。主 RAML 文件以红色突出显示引用,并指出外部文件中存在错误,并且不清楚错误是什么。
我注意到,当我从外部文件中删除 trait: 或 resourceType: 以及 trait 或 resourceType 的名称时,它可以正常工作。
我认为如果你也愿意的话,你可以给你的特征和资源类型添加名称,所以我使用的语法不正确,或者当你将特征和资源类型移到主 RAML 之外时,每个例如特征需要自己的文件?
示例:资源类型
导致错误:
#%RAML 1.0 ResourceType
resourceType:
genericData:
description: Generic data resource
is: [headers]
get:
description: Get all <<resourcePathName>>
is: [myDataResponse]
post:
description: Update <<resourcePathName>>
body:
application/json:
example: examples/data.json
is: [mySuccessResponse]
错误消失
#%RAML 1.0 ResourceType
description: Generic data resource
is: [headers]
get:
description: Get all <<resourcePathName>>
is: [myDataResponse]
post:
description: Update <<resourcePathName>>
body:
application/json:
example: examples/data.json
is: [mySuccessResponse]
示例:特质
导致错误:
#%RAML 1.0 Trait
trait:
messageResponse:
responses:
200:
body:
application/json:
example: examples/success.json
错误消失
#%RAML 1.0 Trait
responses:
200:
body:
application/json:
example: examples/success.json
谢谢
如果文件以 RAML 片段标识符行开头,并且片段标识符不是库、覆盖或扩展,则根据相关的 RAML 片段标识符行删除后的文件内容必须在结构上有效RAML 规范。
所以如果是Trait,就不需要在开头加上trait:
,如果是ResourceType,就不需要在开头加上resourceType:
。
它们也不能在片段中命名。导入 raml 时需要定义名称:
#%RAML 1.0
title: My API
traits:
messageResponse: !include resourceTypes/messageResponse.raml
不过您可以在库中为它们命名。类似于:
#%RAML 1.0 Library
traits:
messageResponse:
responses:
200:
body:
application/json:
example: examples/success.json
然后您可以结合数据类型片段和库使其变得更好。完整示例:
#%RAML 1.0 Trait
responses:
200:
body:
application/json:
example: examples/success.json
mylib.raml:
#%RAML 1.0 Library
traits:
messageResponse: !include traits/messageResponse.raml
myapi.raml:
#%RAML 1.0
title: My API
uses:
myLib: library.raml
/resource:
is: [ myLib.messageResponse ]
get: