取决于RAML的必需查询参数

问题描述

我具有以下特征:

traits:
  FeedSortable:
    queryParameters:
      sortBy:
        description:  Sort the topic Feed
        required:     false
        default:      'created_at'
        type:         string
        enum:         [ 'most_recent','upVotes' ]

      since:
        description:  Get topics since utc creation date. required in case of upVotes
        required:     false
        type:         datetime-only

      until:
        description:  Get topics until utc creation date
        required:     false
        type:         datetime-only

Sinceuntil查询参数仅在sortBy被定义为upVotes时才是必需的。
如何在RAML定义中最好地执行此操作?

更一般而言,我想知道如何根据其他查询参数来定义查询参数定义。难道难道不是这样吗?

解决方法

看起来似乎没有什么好办法,尽管这似乎是相对常见的情况。昂首阔步似乎过于严格,RAML似乎也缺少选项。

我通过使该字段完全不需要,并为默认值添加了更多描述来规避了这个问题:

  since:
    description:  Get topics since utc creation date
    required:     false
    default:      sortBy = recent -> null,sortBy = upvotes -> now() - 1 month
    type:         datetime-only