我很喜欢RAML在声明resourceType时如何动态引用不同的架构:
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将为我提供来自GET和POST的
user
模式响应,并使用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中是不允许的。不过,将来的版本可能会允许它。
关于raml - RAML中示例json的动态填充,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27406949/