使一些查询参数依赖于RAML

时间:2017-04-12 18:21:01

标签: api raml

我正在用RAML编写api规范。我有一个带有三个查询参数的GET api。其中一个是可选的。在其他两个的情况下,其中一个至少应该存在。我如何在api规范中定义它

/api
description: api end point

queryParameters:
  field1:
    description: field1
    required: false
    type: string
  field2:
    description: field2
    required: false
    type: string
  field3:
    description: field3
    required: false
    type: string

这里field1是完全可选的。如果我们没有它,那就没关系。但是在其他两个中,field2或field3应该存在。

所以api调用应该是

/api?field2=value or /api?field3=value

我如何在raml中执行此操作?

1 个答案:

答案 0 :(得分:1)

您可以将查询参数拆分为两种类型(每种组合一种)并使用联合类型:

=> #<Prediction id: 126, round: nil, number: nil, created_at: "2017-03-21 05:44:32", updated_at: "2017-03-21 13:05:11", player_id: 2, order: 2, user_id: 2 >

=> #<Result id: 98, info: nil, created_at: "2017-04-20 15:37:17", updated_at: "2017-04-20 15:37:17", player_id: 2, order: 2>