我在API设计器中编写了一些RAML,我有以下代码:
/users:
/{id}:
/tags:
description: Personal tags of a user
get:
description: A list of the user's personal tags
responses:
200:
body:
application/json:
example: |
{
tags: [
{...},
...
]
}
/{slug}:
description: A personal tag
put:
解析器在/{slug}
处抛出错误,因为它认为我正在尝试将其用作get:
方法的属性。但是,/{slug}
需要缩进以使其从属于/tags
。
在RAML(或YAML,因为RAML应该是YAML的一个实例)中有没有办法标记地图的结尾?或者您还有其他建议吗?
答案 0 :(得分:3)
RAML没有(AFAIK)支持明确终止地图,但我们也不需要这样来解决您的问题:-)。
因为在YAML中,空格是语义的,所以发生的是你的GET方法当前缩进,以便它是/ users / {id}级别的方法,所以即使它看起来像/ {slug}从属于标签,它认为它在/ users / {id}的定义中真的,我们应该在这里抛出一个错误,因为方法定义是在你定义了一个子资源之后(谢谢找到这种情况)。
要解决,您需要做的就是缩进您的描述并获得/ users / {id} / tags的一个额外级别的定义,并且它应该都可以解析。更新后的RAML如下。
/users:
/{id}:
/tags:
description: Personal tags of a user
get:
description: A list of the user's personal tags
responses:
200:
body:
application/json:
example: |
{
tags: [
{...},
...
]
}
/{slug}:
description: A personal tag
put: