是否可以在API Blueprint中定义固定的数组长度?

时间:2018-04-17 17:37:28

标签: apiblueprint apiary

我正在API Blueprint中编写API规范,我想将location属性定义为长度为2的固定数组,如下所示:

location object

我把它写成数字数组,如:

+ location (array[number], required)

这是Apiary的结果:

enter image description here

我认为这是可能的,因为图像中的零,但我不知道如何。我通过文档搜索过,但我找不到任何东西......有什么想法可以做到吗?感谢。

1 个答案:

答案 0 :(得分:0)

有可能,您可以在数组中使用fixed type属性,这意味着值固定在数组长度的旁边。

在您的情况下,您不希望修复这些值,因为您希望任何数字都可以在数组中。为此,您需要将值移动为样本。这是一个例子:

+ Response 200 (application/json)
    + Attributes
        + location (array, fixed)
            + `43.3` (number, sample)
            + `-8.41` (number, sample)

不幸的是,API Blueprint解析器中存在一些当前的错误,因此这不会按预期工作。它将生成一个不正确的JSON模式和示例JSON主体,后者由https://github.com/apiaryio/drafter/issues/519跟踪,我相信很快就会解决。

由于这些限制,您可能最好在位置属性的说明中解释这一点:

+ Response 200 (application/json)
    + Attributes
        + location (array) - Location MUST contain exactly two numbers.
            + `43.3` (number)
            + `-8.41` (number)

将呈现如下:

enter image description here