Mon client envoie du GraphQL à l’API de suivi des océans de Windward. Les requêtes peuvent-elles rester telles quelles ?
Oui, les requêtes et les mutations peuvent rester. L’URL et les identifiants changent, et ces deux éléments sont propres à la conception de Dockflow, car Windward ne les publie pas :
- Envoyez à https://api.dockflow.com/compat/windward/graphql
- Envoyez une clé d’API Dockflow dans x-api-key, ou en tant que jeton Bearer. Si votre client appelle publicAPIToken, placez la clé dans clientSecret.
Le premier passage vers cette interface se fait conjointement avec Dockflow, à titre de validation, alors contactez le support pour le planifier.
Un cas concret, avec une clé factice :
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"}}]}}
La réponse contient l’id :
{"data":{"upsertTrackedShipments":[{"id":"000000000000000000012345"}]}}
Les id émis par Windward ne se résolvent pas, alors faites un upsert de chaque expédition une seule fois. La liste filtre uniquement sur l’id et le numéro de conteneur. Les arguments sort et orderBy sont acceptés et ignorés. Le criblage des navires et des entreprises n’est pas couvert. Chaque livraison de webhook porte un en-tête X-Dockflow-Signature.
Correspondance complète des champs et vérification de la signature :