我很喜欢 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
对我来说,这只是添加示例的大量开销。特别是当我想在许多资源上重复该模式时。
问题:有没有办法做到这一点?
最佳答案
不,根据规范,这在 RAML 0.8 中是不允许的。不过,在 future 的版本中可能会允许这样做。
关于raml - RAML 中示例 json 的动态填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27406949/