2017-02-22 97 views
0

我用Atom的this扩展名来设计我的API,用RAML编写。RAML-!包含奇怪的行为

我想我在这里有一个问题:(一蒙面标题和基本URI,不好意思):

Screen

如果我按照RAML 1.0规格,我应该把一个 “有!”。奇怪的是,apiworkbench没有发现任何错误。

如果我这样做: BUG

为什么这项工作没有?

回答

1

不,对于图书馆你不能使用包含关键字。

看来这个规范并不是很清楚,至少在任何地方我都找不到它。因此提出这个问题将是一个好主意。

但是,如果您在规范中检查examples,您将会看到在使用库(使用“关键字”)时省略“!include”。

enter image description here

+0

http://raml.org/上的示例使用!include显示它清晰...当我阅读规范时,对此不清楚.. – jy95

+0

示例使用!include for types,traits,resource types等等,但在使用“uses”关键字时不能使用,在这些示例中,您将看到“!include”被省略。 – Pedro

1

非常好的对话。实际上,规范应该更清楚一些,但是为什么库遵循不同于正常的方法!include的原因是,包含程序只是将新节点添加到您曾使用!include关键字的现有位置。由于它确实是一个简单的“添加”操作,它并没有掩盖任何循环依赖关系。

库有很大的不同,命名空间(uses)的使用有很大的不同。图书馆的目的是创建一组共同的资源/最佳实践的定义,人们也可以使用它们来创建自己的图书馆或其他定义。循环依赖是不可避免的。为此,RAML工作组必须采用与!include不同的机制。因此,图书馆应始终使用:

uses 
    lib: mylib.raml 

希望这解释了背后的合理性,但请让我知道如果您有更多问题。