我需要创建一个具有四个可能的 HTTP 查询参数的 API。参数一或参数二是必需的。其他是可选的。从 Github 上的官方RAML 版本 1.0 规范中,我在RAML queryString 示例中发现了一个几乎完全相同的场景。
我将它加载到 Mulesoft 设计中心进行测试。RAML 在设计中心没有产生任何错误,一切看起来都很好。根据 RAML 中的第一个示例,以下 URL 应该会产生成功(200 OK):
GET https://(mocking URL)/locations?start=2&lat=12&long=13
当我通过 Postman 发送它时,它会到达模拟服务,但我收到以下错误:
{
"code": "REQUEST_VALIDATION_ERROR",
"message": "Error validating query string: expected type: JSONObject, found: Null"
}
我不确定这是否是设计中心的限制,或者我的 URL 是否有问题。有谁知道我做错了什么?
这是官方规范中的 RAML 示例:
#%RAML 1.0
title: Illustrate query parameter variations
types:
lat-long: # lat & long required; mutually exclusive with location
properties:
lat: number
long: number
loc: # location required; mutually exclusive with lat & long
properties:
location:
paging: # each is optional, not exclusive with anything
properties:
start?: number
page-size?: number
/locations:
get:
queryString:
type: [paging, lat-long | loc ]
examples:
first:
value:
start: 2
lat: 12
long: 13
second:
value:
start: 2
page-size: 20
location: 1,2
third: # not valid
value:
lat: 12
location: 2
strict: false # because it's not valid