Yaml 有没有办法在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

我正在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的一个实例)中有没有一种方法来标记地图的结尾?或者您还有其他建议吗?

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
的缩进级别相同,但这似乎不正确