Yaml 有没有办法在RAML中标记方法的结束?
我正在API设计器中编写一些RAML,我有以下代码:Yaml 有没有办法在RAML中标记方法的结束?,yaml,raml,Yaml,Raml,我正在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: e
/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的一个实例)中有没有一种方法来标记地图的结尾?或者您还有其他建议吗?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:
目前,我使用的缩进级别与
/tags
的缩进级别相同,但这似乎不正确