如何验证 RAML 中的数字范围“半开区间”

发布于 2025-01-13 11:32:36 字数 469 浏览 0 评论 0原文

我定义了一个 raml 文件。
我想要验证大于 0 且小于或等于 1 的查询参数(系数)。
(0<系数≤1)

这是我的raml。

#%RAML 1.0
title: sample API
baseUri: http://localhost:8081/api
version: 1.0
/inventory:
    get:      
      coefficient:
        type: number
        minimum: 0
        maximum: 1

我使用最小值最大值,但这将使 0 成为可能。 如何将验证设置为大于 0,但不等于 0。

有什么想法吗?
(由于某些原因,我必须使用数字类型。我知道使用字符串类型和正则表达式可以解决这个问题作为解决方法。)

I defined a raml file.
I want to valid a queryParameter(coefficient) that greater than 0 and less than or equal to 1.
(0< coefficient ≦ 1 )

Here is my raml.

#%RAML 1.0
title: sample API
baseUri: http://localhost:8081/api
version: 1.0
/inventory:
    get:      
      coefficient:
        type: number
        minimum: 0
        maximum: 1

I use the minimum and maximum but this will make 0 possible.
How can I set the validation to greater than 0, but not equal to 0.

Any ideas?
(For some reasons I have to use the number type.I know with type string and regex may solve this problem as a work around.)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

薔薇婲 2025-01-20 11:32:36

RAML 规范似乎没有明确定义范围,但在我看来,当前版本的规范(RAML 1.0)不具备区分半开区间和开区间的表达能力。

RAML 1.0 规范 只是说:

Facet   Description 
minimum?    The minimum value. 
maximum?    The maximum value.

如果您想强制执行此验证,您将需要在 API 实现中实现它,而不是在其 RAML 定义中。

The RAML specification doesn't seem to define ranges clearly but it looks to me that the current version of the specification (RAML 1.0) doesn't has the expressive power to differentiate a half-open interval nor an open interval.

The RAML 1.0 specification just says:

Facet   Description 
minimum?    The minimum value. 
maximum?    The maximum value.

If you want to enforce this validation you will need to implement it in the API implementation instead of its RAML definition.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文