RAML 1.0,映射类型复杂的正则表达式
Posted
技术标签:
【中文标题】RAML 1.0,映射类型复杂的正则表达式【英文标题】:RAML 1.0, Map types complex regular expression 【发布时间】:2016-06-04 11:36:10 【问题描述】:在我的 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 工作台)
[1]http://docs.raml.org/specs/1.0/#raml-10-spec-map-types
【问题讨论】:
【参考方案1】:您需要使用以 /^ 开头并以 $/ 结尾的 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
【讨论】:
【参考方案2】:使用 patternProperties
而不是替代语法,我的 RAML 中没有任何错误。然而,API Workbench 似乎什么也没验证。
【讨论】:
以上是关于RAML 1.0,映射类型复杂的正则表达式的主要内容,如果未能解决你的问题,请参考以下文章