MSON 目前不支持指定验证选项,例如最大长度。API Blueprint 团队一直在探索添加这些功能,但仍需讨论支持此功能的最佳方式。可能有很多验证,所以它肯定是一个很大的话题,所以我们需要找到一种清晰的方式来表达验证,这为声明提供了未来的支持,这样它就可以发展。
在https://github.com/apiaryio/mson/issues/43上有关于该主题的公开讨论。如果您有任何想法或语法建议,他们将不胜感激。
目前,您可以提供一个自定义 JSON Schema 来指定您的验证选项。例如,您可以使用以下 API 蓝图实现此验证:
+ Response 200 (application/json)
+ Attributes
+ tokenType: Bearer (fixed) - The type of access token that was issued.
+ expiresIn: 1000 (number) - How much time in seconds until the token expires.
+ accessToken: `0.AQAAAVF-mqsiAAAAAAAbd0A71bIG8IUwcgHV7mAYiG7J.EAAQsWDnpqRj7WwyFVLTsdo0yXWh9L4` (string) - The access token to pass in the API call to access the protected resource.
+ Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"tokenType": {
"type": "string",
"enum": [
"Bearer"
]
},
"expiresIn": {
"type": "number"
},
"accessToken": {
"type": "string",
"maxLength": 20
}
},
"required": [
"tokenType"
]
}
我同意,这个解决方案不是很好,因为您需要在 MSON 属性和架构本身中复制一些信息。能够直接在 MSON 中指定验证会更好。
只是想提一下,你可以用fixed
fortokenType
来表示它有一个不会改变的固定值。您还可以enum
在将来使用以允许多个tokenType
选项。