Meu cliente envia GraphQL para a API de rastreamento oceânico da Windward. As queries podem permanecer?
Sim, as queries e mutations podem permanecer. A URL e a credencial mudam, e essas duas são de design próprio da Dockflow, porque a Windward não as publica:
- Envie para https://api.dockflow.com/compat/windward/graphql
- Envie uma chave de API da Dockflow em x-api-key, ou como um Bearer token. Se seu cliente chama publicAPIToken, coloque a chave em clientSecret.
A primeira migração para essa superfície é feita em conjunto com a Dockflow, como validação, então entre em contato com o suporte para planejá-la.
Um caso prático, com uma chave falsa:
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"}}]}}
A resposta contém o id:
{"data":{"upsertTrackedShipments":[{"id":"000000000000000000012345"}]}}
Ids emitidos pela Windward não são resolvidos, então faça upsert de cada embarque uma única vez. A lista filtra apenas por id e número de contêiner. Os argumentos sort e orderBy são aceitos e ignorados. A triagem de embarcações e empresas não é coberta. Cada entrega de webhook carrega um cabeçalho X-Dockflow-Signature.
Mapeamento completo de campos e a verificação da assinatura: