Guidewire Composite API 子请求支持 GET 方法吗?
结论
从这条 400 错误可以看出,该 Composite 请求入口不接受 GET 作为子请求方法。服务端允许的方法只有 DELETE、PATCH、POST 和 PUT。因此,无法按示例在同一个请求中先执行 GET,再将查询结果保存为变量供后续子请求使用。
问题中提到的文档图片未包含在当前材料里,因此无法判断图片描述的 Guidewire 版本、API 或 Composite 请求格式是否与实际调用一致。如果文档与运行结果不一致,应以目标环境的接口文档和实际版本为准。
可选处理方式
1. 在调用 Composite API 前查询 ID
调用方可以先根据 producer code 查询 producer,再将返回的 public ID 放入后续 Composite 请求。整个流程需要两次 HTTP 调用:
GET producer by code
↓
读取 producer public ID
↓
POST Composite request,引用 public ID
这样,Composite 子请求就不需要执行 GET,也不依赖 Composite 内部传递查询结果的变量。调用方还应处理查无记录、匹配到多条记录或查询失败的情况,再决定是否提交后续请求。
2. 检查 API 是否支持用业务标识关联实体
查看目标资源的接口文档,确认创建 account 或 submission 时,是否可以通过 producer code 或其他业务标识建立关联。如果接口只接受 public ID,就需要先查询 ID。除非接口明确支持,否则不要把 code 填到 id 字段中。
3. 评估是否需要服务端编排
如果业务要求由服务端统一完成查询和后续写入,可以评估定制编排逻辑。是否有现成的免定制方案,取决于所用的 Guidewire 产品、版本、API 定义和部署配置。现有错误信息无法确认这些环境是否提供其他可配置能力。
排查要点
示例中的错误发生在方法校验阶段:get 不在该请求允许的方法枚举中。可以先核对实际调用的 Composite API 路径、目标环境版本,以及对应版本文档中 requests[].method 的定义。如果确认允许的方法仍只有 DELETE、PATCH、POST 和 PUT,就应在请求 Composite API 前查询,或评估其他编排方式。
备注:内容仅供参考。
