1

我正在尝试在我的 RAML 中对具有任意 URL 参数列表的 GET 请求进行建模。2 个参数是已知的,但其余的是从其他请求类型的响应数据中选择的名称/值对。我尝试在我的 queryParameters 列表中使用 additionalParameters: 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

其中 content 和 node 不是预定义的参数名称。

这可能吗?

4

1 回答 1

1

additionalParameters0.8RAML 目前不支持:在规范版本中找不到它。

这就是说,这个(非常重要的)话题正在RAML 论坛中讨论

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

  • 不要指定这些参数,需要注意的是,如果您使用这些参数,RAML Tester 等工具将报告请求违规。
  • 用 指定所有可能的参数required: false,需要注意的是您需要事先知道所有这些参数。
于 2015-05-05T03:06:38.327 回答