「metafieldsSet」変異における「MetafieldsSetInput.type」をnull許容に更新しました
多くのShopify開発者が経験する課題の一つに、メタフィールドのミューテーション操作が挙げられます。これまで、metafieldsSetのAPIでは、MetafieldsSetInput.typeフィールドが必須でした。しかし、既存のメタフィールド定義が存在する場合には、このフィールドを省略してミューテーションを簡素化することが可能となるべきです。これが本記事のテーマとなります。
技術的な解決策
2023年のGraphQL Admin APIリリースに伴い、MetafieldsSetInput.typeフィールドをnull許容に更新しました。これにより、既に対応するメタフィールド定義を持つメタフィールドを変異させる場合、typeフィールドを省略することでミューテーションを簡素化することが可能になりました。
実装手順とコード例
以下は、typeフィールドを省略したmetafieldsSetミューテーションの例です:
mutation {
metafieldsSet(input: {
ownerId: "gid://shopify/Product/1",
namespace: "my_namespace",
key: "my_key",
value: "This is a value"
}) {
userErrors {
field
message
}
metafields {
id
}
}
}
ただし、メタフィールドが指定されたownerId、namespace、keyに対応する定義を持っていない場合、typeフィールドは引き続き必須です。
パフォーマンス・コスト分析
この更新により、既存のメタフィールド定義が存在する場合のミューテーション操作が簡素化され、開発の手間と時間が削減されます。これは、API呼び出しの数を減らすことでパフォーマンスを向上させ、開発コストを削減する可能性があります。
注意点・ベストプラクティス
ただし、メタフィールドが指定されたownerId、namespace、keyに対応する定義を持っていない場合、typeフィールドは引き続き必須です。そのため、typeフィールドを省略する前に、メタフィールドの定義を確認することが推奨されます。
次のステップ
今後は、この改善を活用して、メタフィールドの操作をより効率的に行うことが可能になります。また、ShopifyのAPIがさらに進化することで、より多くのフィールドがnull許容になる可能性もあります。続報をお待ちください。
参考記事: Updated MetafieldsSetInput.type to be nullable for metafieldsSet mutation






Share:
GraphQL Admin APIを使った新しい返品管理方法
ProductFilterオブジェクトに新たに`tag`フィールドが追加されました