我很喜欢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/

10-09 17:22