`webhookSubscriptionCreate`と`webhookSubscriptionUpdate`がすべてのURIタイプをサポート
Shopify開発者の皆さん、こんにちは。今回はShopifyの新たなAPI更新情報をお届けします。GraphQLの`webhookSubscriptionCreate`と`webhookSubscriptionUpdate`が、全てのURIタイプをサポートするようになったことをご存知でしょうか?これにより、開発者はより簡単に、より幅広い種類のwebhookを作成または更新することが可能になりました。
現状の問題と課題
これまでのShopifyでは、webhookを作成または更新する際、HTTPS URLだけでなく、Google Pub/Sub URIsやAmazon EventBridge event source ARNsといった特定のURIを使用したい場合、それぞれ専用のエンドポイントを使用しなければなりませんでした。これは、コードの複雑性を増し、開発者にとっては手間となっていました。
技術的ソリューションの提案
しかし、この度ShopifyはGraphQLの`webhookSubscriptionCreate`と`webhookSubscriptionUpdate`が全てのURIタイプをサポートするように更新しました。これにより、開発者は一貫したフィールド`uri`を使用して、どの種類のURIでもwebhookを作成または更新することができます。また、`webhookSubscriptions`クエリもこの新しいフィールド`uri`をサポートし、全てのエンドポイントタイプに対応するフィルタリングが可能になりました。
実装手順とコード例
具体的な実装手順としては、webhookを作成する際に`webhookSubscriptionCreate`を、更新する際に`webhookSubscriptionUpdate`を使用します。以下にコード例を示します。
``` mutation { webhookSubscriptionCreate( webhookSubscription: { format: JSON, topic: ORDERS_CREATE, uri: "https://example.com/webhooks" } ) { userErrors { field message } webhookSubscription { id } } } ```このように、`webhookSubscription`オブジェクト内の`uri`フィールドに対して、作成または更新したいwebhookのURIを指定するだけで、簡単にwebhookを作成または更新することができます。
パフォーマンス・コスト分析
この変更により、webhookの作成や更新のコードが一貫性を持つようになりました。これにより、コードの可読性が向上し、開発やデバッグの時間を短縮することができます。また、これまで複数のエンドポイントを管理する必要があったものが一つにまとまることで、コードの保守性も向上します。
実装時の注意点・ベストプラクティス
ただし、この変更に伴い、`eventBridgeWebhookSubscriptionCreate`、`eventBridgeWebhookSubscriptionUpdate`、`pubSubWebhookSubscriptionCreate`、`pubSubWebhookSubscriptionUpdate`といったエンドポイント固有のミューテーションは非推奨となりました。また、`webhookSubscriptions`クエリの`callbackUrl`フィールドも非推奨となりました。これらの非推奨フィールドは今後のバージョンで削除される可能性があるため、新しい`uri`フィールドを使用するように移行することをお勧めします。
次のステップ・発展案
これからは`webhookSubscriptionCreate`と`webhookSubscriptionUpdate`を使って、どの種類のURIでもwebhookを作成または更新できます。また、`webhookSubscriptions`クエリでも同様に全てのエンドポイントタイプをフィルタリングできます。ShopifyのAPIは常に進化しており、開発者の利便性を高めるための新しい機能が追加されています。今後も最新の情報に注目して、最適なソリューションを見つけていきましょう。
参考記事: `webhookSubscriptionCreate` and `webhookSubscriptionUpdate` support all URI types






Share:
2025年1月版 Hydrogenリリース情報
ストアクレジット取引に新たに追加された`event`と`origin`フィールド