我使用Atom的this扩展来设计我的API,用RAML编写。
我想我在这里有一个问题:(我屏蔽了标题和baseUri,抱歉):
如果我遵循RAML 1.0规范,我应该放一个"!include"。奇怪的是,apiworkbench没有发现错误。
为什么这不起作用?
答案 0 :(得分:1)
不,对于图书馆,您不得使用include关键字。
似乎规范对此并不十分清楚,或者至少我无法在任何地方找到它。因此提出一个问题是一个好主意。
但是如果你检查规范中的examples,你会看到当使用库(使用“uses”关键字)时,省略了“!include”。
答案 1 :(得分:1)
非常好的对话。实际上,规范应该更加明确,但库之所以采用与普通!include
不同的方法的原因是,只需将新节点添加到现有的!include
关键字中。因为它实际上是一个简单的“添加”操作,所以它不会掩盖任何循环依赖。
库非常不同,名称空间(uses
)的使用也大不相同。库的目的是创建一个共同的可共享资产组/最佳实践定义,人们也可以使用它们来创建自己的库或其他定义。循环依赖是不可避免的。为此,RAML工作组必须提供与!include
不同的机制。因此,对于库,您应该始终使用:
uses
lib: mylib.raml
希望能够解释其背后的合理性,但如果您有更多问题,请告诉我。