Windward GraphQL 追踪客户端能否在 Dockflow 上运行,需要做哪些改动?

我的客户向 Windward 的海洋追踪 API 发送 GraphQL。这些查询能保留吗?

可以,查询和变更都可以保留。URL 和凭证需要更改,这两项是 Dockflow 自己的设计,因为 Windward 并未公开它们:

  1. 发送到 https://api.dockflow.com/compat/windward/graphql
  2. 在 x-api-key 中发送 Dockflow API 密钥,或作为 Bearer 令牌发送。如果你的客户端调用 publicAPIToken,请将密钥放在 clientSecret 中。

首次迁移到此接口需与 Dockflow 共同进行,作为验证环节,因此请联系支持团队进行规划。

一个示例,使用假密钥:

POST /compat/windward/graphql
x-api-key: prod_acme_FAKE-TOKEN

{"query":"mutation($s:[TrackedShipmentInput!]!){upsertTrackedShipments(shipments:$s){id}}",
 "variables":{"s":[{"bol":"BL-7741","metadata":{"jobNumber":"PO-5521"}}]}}

响应中包含 id:

{"data":{"upsertTrackedShipments":[{"id":"000000000000000000012345"}]}}

Windward 签发的 id 无法解析,因此请对每个货运单执行一次 upsert。列表仅支持按 id 和集装箱号筛选。sort 和 orderBy 参数会被接受但被忽略。不涵盖船舶和公司筛查。每次 webhook 投递都会携带 X-Dockflow-Signature 请求头。

完整字段映射和签名校验: