You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Anypoint Platform API治理规则集开发:多规则兼容与驼峰校验需求

API治理规则集问题

示例API定义

/example:    
      /{uriParams}:
        get:
          is: [defaultResponses, commonHeaders]
          uriParameters:
          uriParams:
          description: 示例描述uriParams
          body:
          application/json:
          example: !include examples.example.json

需求与问题

我要开发一套API治理规则集,完成三项检查:

  • 检查请求/响应体是否通过!include引入示例
  • 检查端点是否应用了defaultResponses、commonHeaders这类traits
  • 新增规则:检查所有字段名称是否符合驼峰命名规范(示例:camelCase、exampleTwo)

当前遇到的问题:规则集无法同时生效——当文件中同时包含traits规则和示例检查规则时,仅traits规则起作用;删除traits规则后,示例检查规则才正常工作,希望两类规则能协同生效。

当前编写的规则集代码

provide-examples:
    message: 请求和响应体必须包含示例
    targetClass: apiContract.Payload
    rego: |
      schema = find with data.link as $node["http://a.ml/vocabularies/shapes#schema"]

      nested_nodes[examples] with data.nodes as object.get(schema, "http://a.ml/vocabularies/apiContract#examples", [])

      examples_from_this_payload = { element |
        example = examples[_]
        sourcemap = find with data.link as object.get(example, "http://a.ml/vocabularies/document-source-maps#sources", [])
        tracked_element = find with data.link as object.get(sourcemap, "http://a.ml/vocabularies/document-source-maps#tracked-element", [])
        tracked_element["http://a.ml/vocabularies/document-source-maps#value"] = $node["@id"]
        element := example
      }

      $result := (count(examples_from_this_payload) > 0)
traits:
  message: 必须应用通用默认traits
  targetClass: apiContract.EndPoint
  propertyConstraints:
    apiContract.ParametrizedTrait:
        core.name:
         pattern: defaultResponses

camel-case-fields:
  message: 字段名称必须使用驼峰命名(camelCase)
  targetClass: apiContract.EndPoint
  if:
    propertyConstraints:
      shacl.name:
        in: ['path']
  then:
    propertyConstraints:
        shacl.name:
            pattern: "^[a-z]+([A-Z][a-z]+)*$"

内容的提问来源于stack exchange,提问作者Anonim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 21:36:30