【发布时间】:2020-11-18 13:50:01
【问题描述】:
我需要创建一个具有四个可能的 HTTP 查询参数的 API。参数一或参数二是必需的。其他是可选的。从 Github 上的官方RAML version 1.0 specification 中,我在RAML queryString example 中发现了一个几乎完全相同的场景。
我将它加载到 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
【问题讨论】:
-
这是模拟服务@Tony 中的一个错误。
-
@George 感谢您的回复。这个错误是否记录在某个地方?
-
是的,但它不被广大观众所接受。
标签: api-design mulesoft raml raml-1.0