我们一直在编写RAML规范,并且一直在单独的文件中定义我们的数据类型。类似于:
%#RAML 1.0 DataType
type: !include ../base-type.raml
description: Lorem ipsum
properties:
foo: string它工作得很好,但是根据RAML规范,您可以通过对type字段使用YAML数组类型来使用多重继承。
但是,如果我尝试使用includes执行此操作,则总是得到相同的错误:INHERITING_UNKNOWN_TYPE
我试过这样做:
type: [!include ../base-type.raml]
type: [!include ../base-type.raml, !include ../another-type.raml]
type:
- !include ../base-type.raml
- !include ../another-type.raml但所有这些都会产生相同的错误。这是我做错了吗?还是在RAML中不受支持?
发布于 2016-12-15 23:00:50
多重继承可以像你说的那样定义,但我不认为它适用于内联类型。
因此,您应该首先指定类型的定义,然后仅使用先前定义的类型的键指定多重继承。
例如:
types:
Person:
type: object
properties:
name: string
Employee:
type: object
properties:
employeeNr: integer一旦你做到这一点,你就可以创建一个继承自这些类型的新类型,例如:
Teacher:
type: [ Person, Employee ]然后在一些资源中使用该类型:
/someresource:
get:
responses:
200:
body:
application/json:
type: Teacher或者直接将类型指定为数组:
/someresource:
get:
responses:
200:
body:
application/json:
type: [ Person, Employee ]它们还可以与includes一起使用,例如:
types: !include myTypes.raml但为了更清楚起见,我没有在上面的例子中使用include。
更多信息here
发布于 2017-01-12 15:15:37
实际上,我已经发现了如何包含多个带有类型的文件(尽管它在文档示例中没有表示)-在RAML-file的根目录中只需添加:
uses:
file: path/to/file.raml
otherfile: path/to/otherFile.raml
yetanother: path/to/yetanother.ramlhttps://stackoverflow.com/questions/41162768
复制相似问题