Мне нравится, как RAML может динамически ссылаться на разные схемы при объявлении типа ресурса, например:
resourceTypes:
- collection:
get:
responses:
200:
body:
application/json:
schema: <<schema>>
post:
body:
application/json:
schema: <<schema>>Create
responses:
200:
body:
application/json:
schema: <<schema>>
Здесь я могу использовать это как
/users:
type: { collection: { schema: user } }
и RAML будет давать мне user
ответы схемы от GET и POST, а также использовать схему userCreate
для отправки запросов POST. Прохладный! Теперь я могу повторно использовать определение моей коллекции с множеством различных схем.
Но теперь, когда я хочу иметь пример json для всего, я надеялся использовать <<schema>>
var по-другому, чтобы усилить «повторное использование кода». Я надеялся, что смогу сделать
resourceTypes:
- collection:
get:
responses:
200:
body:
application/json:
schema: <<schema>>
example: examples/v1-<<schema>>.json
post:
body:
application/json:
schema: <<schema>>Create
example: examples/v1-<<schema>>-create.json
responses:
200:
body:
application/json:
schema: <<schema>>
example: examples/v1-<<schema>>.json
но, к сожалению, это не работает. Я получаю сообщение об ошибке
error: File with path "/examples/v1-%3C%3Cschema%3E%3E.json" does not exist
Итак, теперь я прибег к ручному добавлению этого во все мои коллекции, и пример /users
, приведенный выше, стал
/users:
type: { collection: { schema: user } }
get:
responses:
200:
body:
application/json:
example: !include examples/v1-user.json
post:
body:
application/json:
example: !include examples/v1-user-create.json
responses:
200:
body:
application/json:
example: !include examples/v1-user.json
Для меня это ОЧЕНЬ накладные расходы, просто чтобы добавить примеры. Особенно, когда я хочу повторить шаблон на многих ресурсах.
Вопрос: есть ли способ добиться этого?