在我的 API RAML 中,有一个名为“sfIds”的查询参数,它是一个数组类型。我需要在 RAML 中实现验证,以确保数组元素始终是数字,例如 [111, 222, 333] 或 [111]。诸如 [ABC,111] 之类的数组不应通过 RAML 验证。
有没有办法定义此验证的“类型”?
下面是我的 RAML 代码的一部分;请注意,这只是完整 RAML 的一部分。它没有按照我的 Mule 流程中的预期运行。
#%RAML 1.0
title: My Test API
version: v1
types:
NumericArray:
type: array
items: number
/ids:
get:
queryParameters:
sfIds?:
type: NumericArray
example: [111,222]
我在 Mule 流程中遇到的错误是:
Invalid value '[111,222]' for query parameter sfIds. /0 expected type: Number, found: JSONArray"
您可以尝试提及更具体的类型,例如
number[]
,它是一个数字数组
#%RAML 1.0
title: My Test API
version: v1
types:
NumericArray:
type: number[]
/ids:
get:
queryParameters:
sfIds?:
type: NumericArray
example: [111,222]
访问上述内容的 URL ->
/api/ids?sfIds=123&sfIds=234
当您使用 valuesOf(attributes.queryParams)
访问它时,将得到 [123,234]
我已经成功地让这个工作了。这是现在正在运行的 RAML。
#%RAML 1.0
title: My Test API
version: v1
types:
NumericArray:
type: array
items: number
minItems: 1
/ids:
get:
queryParameters:
sfIds?:
type: array
items:
type: NumericArray