1

在我的 api 中,我有一个包含uuid->Drive. 我使用了 Map 类型 [1] 来定义:

type: object
properties:
  drives:
    required: false
    type: object
    properties:
      [(a-zA-Z0-9-)*] :
         type: Drive

那项工作,但我想在模式上更精确。但是我无法让它工作。

  • ["(a-zA-Z0-9){8}-(a-zA-Z0-9){4}-(a-zA-Z0-9){4}-(a-zA-Z0-9){4}-(a-zA-Z0-9){12}"]:似乎不用作正则表达式。
  • [(a-zA-Z0-9){8}-(a-zA-Z0-9){4}-(a-zA-Z0-9){4}-(a-zA-Z0-9){4}-(a-zA-Z0-9){12}]:在流集合条目之间说Missed comma

如何在带有 RAML 1.0 的 Map 类型中使用复杂的表达式?

(我正在使用 API 工作台)

[1] http://docs.raml.org/specs/1.0/#raml-10-spec-map-types

4

2 回答 2

0

您需要使用以 /^ 开头并以 $/ 结尾的 RegEx 字符串

#%RAML 1.0
title: My API With Types
types:
  Person:
    properties:
      name:
        required: true
        type: string
      age:
        required: false
        type: number
      /^note\d+$/: # restrict any properties whose keys start with "note"
                   # followed by a string of one or more digits
        type: string

https://github.com/raml-org/raml-spec/blob/master/versions/raml-10/raml-10.md#additional-properties

于 2020-04-01T16:02:05.470 回答
0

使用patternProperties替代语法代替我的 RAML 中没有任何错误。然而,API Workbench 似乎什么也没验证。

于 2016-02-23T08:16:07.250 回答