Есть ли способ отметить конец метода в RAML?

Я пишу немного RAML в конструкторе API, и у меня есть следующий код:

/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), чтобы отметить конец карты? Или у вас есть другие предложения?

1 ответ

Решение

RAML (AFAIK) не поддерживает явное завершение карт, но нам это также не нужно для решения вашей проблемы:-).

Поскольку в YAML пробел является семантическим, то происходит то, что ваш метод GET в настоящее время имеет отступ, так что это метод на уровне /users/{id}, поэтому, хотя он выглядит так, что /{slug} подчинен тегам, он думает, что он находится в определении /users/{id}. На самом деле, мы, вероятно, должны выбросить здесь ошибку, поскольку определение метода приходит после того, как вы определили подресурс (спасибо за поиск этого случая).

Чтобы решить, все, что вам нужно сделать, это сделать отступ для вашего описания и получить определение для /users/{id}/ тегов еще одного уровня, и все должно хорошо разбираться. Обновленный 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: 
Другие вопросы по тегам