RAML:指定任意queryParameters

时间:2015-04-10 17:02:21

标签: raml

我正在尝试在我的RAML中建模一个具有任意URL参数列表的GET请求。 2个参数是已知的,但其余的是从其他请求类型的响应数据中选择的名称/值对。我尝试使用additionalParameters:在我的queryParameters列表中为true,但是当我尝试解析RAML时,我从osprey-mock-service收到错误消息:

each query parameter must be a map

我的RAML的相关片段是:

/statistics:
  /{statisticId}:
      get:
        description: Get the stastic data
        queryParameters:
          start:
            displayName: Start Time
            type: integer
            description: The timstamp in milliseconds indicating the beginning of the collection of timeseries data
            example: 1380601800000
            required: false
          end:
            displayName: End Time
            type: integer
            description: The timstamp in milliseconds indicating the end of the collection of timeseries data
            example: 1380601800000
            required: false
          additionalParameters: true
        responses:
          200:
            body:
              application/json:
                schema: statistic
                example: !include ../dto/statistic.sample

删除该行后,错误消息消失了:

      additionalParameters: true

我没有找到一个引用,表明你可以将additionalParameters与queryParameters一起使用,但似乎有意义。

我不一定需要解决错误消息,但我希望有以下URL参数:

?start=23010030&end=23011470&content=abc.com&node=siteA

其中内容和节点不是预定义的参数名称。

这可能吗?

1 个答案:

答案 0 :(得分:1)

RAML目前不支持

additionalParameters:在0.8 of the specification版本中找不到它。

这就是说,这个(非常重要的)主题是under discussion in the RAML forums

目前,我只看到两个选项:

  • 不要指定这些参数,需要注意的是,如果使用这些参数,工具(如RAML Tester)将报告请求违规。
  • 使用required: false指定所有可能的参数,需要注意的是您需要事先了解所有这些参数。