RAML 1.0,Map类型复杂的正则表达式

时间:2016-02-22 21:08:19

标签: regex raml

在我的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}]:说出流集合条目之间的错过逗号

如何在RAML 1.0的Map类型中使用复杂的探索?

(我正在使用API​​ Workbench)

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

2 个答案:

答案 0 :(得分:0)

使用patternProperties代替替代语法我的RAML中没有任何错误。但是,似乎API Workbench没有验证任何内容。

答案 1 :(得分: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