2017-02-22 99 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 

希望這解釋了背後的合理性,但請讓我知道如果您有更多問題。