为RAML创建API治理规则集遇阻:检查响应示例与URI参数描述
RAML治理规则失效问题排查与修复
首先你的RAML示例代码存在缩进与节点缺失问题,会导致解析异常,先修正为规范格式:
/example: /{uriParams}: get: uriParameters: uriParams: description: Example description uriParams responses: 200: body: application/json: example: !include examples.example.json
注:原代码缺少responses节点,body及uriParameters下属节点缩进错误,会影响规则引擎的正常解析
1. 响应示例检查规则(response-example)失效原因与修复
你的规则存在3个核心问题:
- 目标类错误:
targetClass: apiContract.Example定位错误,示例属于响应体的属性,应针对apiContract.MessageBody或apiContract.Response - 属性路径错误:
apiContract.returns不是合法属性,应直接检查响应体的example字段 - YAML语法错误:规则内节点缩进不一致,同时正则匹配的转义符多余
修正后的规则:
response-example: message: "Provide example for response body." targetClass: apiContract.MessageBody propertyConstraints: apiContract.example: minCount: 1 # 若不需要限制必须是!include引用的示例,可删除以下propertyConstraints块 propertyConstraints: core.stringValue: pattern: ^!include
2. URI参数描述检查规则(uri-descriptions)失效原因与修复
你的规则核心问题是条件判断逻辑错误:if块内propertyConstraints: apiContract.Parameter是无效写法,应检查参数是否为URI参数,正确属性为apiContract.isUriParameter: true,同时存在YAML缩进错误。
修正后的规则:
uri-descriptions: message: "Provide description for URI parameters." targetClass: apiContract.Parameter if: propertyConstraints: apiContract.isUriParameter: equals: true then: propertyConstraints: core.description: minCount: 1
内容的提问来源于stack exchange,提问作者Anonim
相关产品推荐
相关产品推荐

