RAML-!包括奇怪的行为

时间:2017-02-22 16:56:52

标签: parsing yaml raml

我使用Atom的this扩展来设计我的API,用RAML编写。

我想我在这里有一个问题:(我屏蔽了标题和baseUri,抱歉):

Screen

如果我遵循RAML 1.0规范,我应该放一个"!include"。奇怪的是,apiworkbench没有发现错误。

如果我这样做: BUG

为什么这不起作用?

2 个答案:

答案 0 :(得分:1)

不,对于图书馆,您不得使用include关键字。

似乎规范对此并不十分清楚,或者至少我无法在任何地方找到它。因此提出一个问题是一个好主意。

但是如果你检查规范中的examples,你会看到当使用库(使用“uses”关键字)时,省略了“!include”。

enter image description here

答案 1 :(得分:1)

非常好的对话。实际上,规范应该更加明确,但库之所以采用与普通!include不同的方法的原因是,只需将新节点添加到现有的!include关键字中。因为它实际上是一个简单的“添加”操作,所以它不会掩盖任何循环依赖。

库非常不同,名称空间(uses)的使用也大不相同。库的目的是创建一个共同的可共享资产组/最佳实践定义,人们也可以使用它们来创建自己的库或其他定义。循环依赖是不可避免的。为此,RAML工作组必须提供与!include不同的机制。因此,对于库,您应该始终使用:

uses
  lib: mylib.raml

希望能够解释其背后的合理性,但如果您有更多问题,请告诉我。