如何在RAML输出中动态地包含/排除API块



我只是想了解在从RAML生成的文档中排除/包括端点的可能性。

例如,给定

#%RAML 1.0
baseUri: https://api.mybanks.com/v1
title: MyBanks-API
version: v1
protocols: [HTTP, HTTPS]
mediaType: application/json
/banks:
get:
description: Lists all banks
responses:
200:
body:
text/plain:
example: ['b1', 'b2']
/accounts:
get:
description: List all accounds
responses:
200:
body:
text/plain:
example: ['a1', 'a2', 'a3']

我想从生成的文档中排除/banksAPI。有什么可能的方法可以做到这一点?(最好不要评论(

没有办法(AFAIK(动态排除API规范的片段——此外,这样一个功能的语义是什么?意思是什么?另一个需要考虑的问题是,当你接受规范并开始实施它时,它是如何应用的?

现在有一种方法可以使用RAMLextension扩展现有的API规范。https://github.com/raml-org/raml-spec/blob/master/versions/raml-10/raml-10.md/#extensions

如果使用RAMLextension片段,则规范将被拆分为两个文件:

1( 根RAML文件:

#%RAML 1.0
baseUri: https://api.mybanks.com/v1
title: MyBanks-API
version: v1
protocols: [HTTP, HTTPS]
mediaType: application/json
/accounts:
get:
description: List all accounds
responses:
200:
body:
text/plain:
example: ['a1', 'a2', 'a3']

2(extension片段:

#%RAML 1.0 Extension
extends: banks-api.raml
/banks:
get:
description: Lists all banks
responses:
200:
body:
text/plain:
example: ['b1', 'b2']

现在您有了API的两个视图,(1(根和(2(extension。您可以向用户提供root或extention

最新更新