WooCommerce Dual APIが専用プラグインに移行、コアから削除へ

WooCommerce Dual APIが専用プラグインに移行、コアから削除へ

WooCommerce Dual APIが専用プラグインに移行、コアから削除へ

WooCommerce 11.2で、実験的なDual APIエンジンがコアから削除され、専用プラグインとして提供される。10.9から11.1まで利用できた検証用の商品・クーポンAPIも廃止されるため、使っていた開発者は対応が必要だ。

Dual APIとはPHPクラスからGraphQLエンドポイントを自動生成するコードファーストな仕組みで、WooCommerce 10.9で実験機能として導入された。今回の変更は、開発の自由度を高めるための構成変更である。

WooCommerce 11.2でDual APIの提供形態が変わる

WooCommerce 11.2でDual APIの提供形態が変わる

WooCommerce 10.9で導入されたDual APIは、PHPクラスを定義するだけでGraphQLエンドポイントを生成できる実験的な拡張機能だった。これまではWooCommerce本体に組み込まれ、フィーチャーフラグで有効化する方式だった。

WooCommerce 11.2では、このDual APIエンジンがWooCommerceコアから削除される。代わりに、WooCommerce Dual APIプラグインとして独立したリポジトリで提供される形だ。

WooCommerce 10.9〜11.1(Before)
WooCommerceコア にDual APIエンジンを内蔵
開発者 はフィーチャーフラグで有効化
商品・クーポンの検証用APIも利用可能
↓
WooCommerce 11.2以降(After)
専用プラグイン として独立提供
開発者 はプラグインをインストールして有効化
検証用APIは削除される

この変更により、WooCommerce本体のリリースサイクルに縛られず、Dual APIだけを柔軟にアップデートできるようになる。Dual APIエンジン自体は、独自のAPIを開発したいエクステンション開発者にとって引き続き有用だ。

検証用の商品・クーポンAPIは削除される

WooCommerce 10.9から11.1まで、商品とクーポンに関する検証用APIが組み込みで提供されていた。このAPIはWooCommerce 11.2で削除される。

この検証用APIを使っていた開発者は、利用を停止するか、自前のエクステンションで同等のAPIを構築する必要がある。注意点として、Dual APIプラグインをインストールしても、この検証用エンドポイントが復活することはない。

Dual API移行で開発者が知るべき変更点

Dual API移行で開発者が知るべき変更点

独自のDual APIを開発しているエクステンション開発者には、いくつか重要な変更がある。フィーチャーフラグの廃止、APIビルダースクリプトの移設、ドキュメントの場所変更、そして依存関係の宣言方法だ。

プラグイン依存関係をヘッダーに宣言する

これまでDual APIエンジンを有効化していたフィーチャーフラグは利用できなくなる。代わりに、Dual APIプラグインをインストールして有効化することでエンジンが使えるようになる。プラグインの要件はWooCommerce 11.2以上、PHP 8.1以上だ。

エクステンションがDual APIエンジンに依存する場合、プラグインのヘッダーで両方の依存関係を宣言する必要がある。具体的には以下のように記述する。

Requires Plugins: woocommerce, woocommerce-dual-api

この記述により、エクステンションのインストール時にWooCommerce本体とDual APIプラグインの両方が必要であることが明示される。依存関係の宣言は、プラグインの動作に必要な前提条件をユーザーに伝える重要な役割を果たす。

APIビルダーとドキュメントの場所が変わる

APIビルダースクリプトは、WooCommerce Dual APIプラグインのリポジトリに移動した。利用するには、プラグインをインストールするか、リポジトリをローカルにクローンする。

ドキュメントもDual APIプラグインのリポジトリ内に移設された。GitHub Pagesでも閲覧できる形で提供されている。開発者は最新のドキュメントをプラグインリポジトリで確認することになる。

STEP 1 Dual APIプラグインをインストールして有効化
↓
STEP 2 エクステンションのヘッダーに依存関係を宣言
↓
STEP 3 エクステンション内でGraphQLエンドポイントを登録
↓
STEP 4 独自のGraphQL APIとして利用可能

エンドポイント登録のコード例

Dual APIプラグインはエンジンを提供し、エクステンション側で独自のGraphQLエンドポイントを登録する。WooCommerceのシンプルイベントサンプルプラグインから、登録方法のコードを示す。

use Automattic\WooCommerce\Api\Infrastructure\Main as DualApiMain;

add_action(
	'plugins_loaded',
	static function () {
		if ( method_exists( DualApiMain::class, 'register_graphql_endpoint' ) ) {
			DualApiMain::register_graphql_endpoint(
				__DIR__,
				'wc',
				'/graphql/simple-events'
			);
		}
	}
);

このコードは、プラグインの読み込み時にDual APIエンジンが利用可能か確認し、利用可能であればGraphQLエンドポイントを登録する。エンドポイントのパスや名前空間はエクステンションごとに自由に設定できる。

Dual APIは引き続き実験的ステータス

Dual APIは引き続き実験的ステータス

Dual APIはプラグインに移行した後も、実験的なステータスは変わらない。Automattic\WooCommerce\Api名前空間以下のすべての要素は、後方互換性のない形で変更される可能性がある。

つまり、将来のリリースでAPIの構造が変わったり、削除されたりする可能性があるということだ。このため、本番環境のエクステンションでDual APIを使用することは推奨されていない。開発用途や検証目的に限定して使うべきだろう。

⚠️ 実験的ステータスの意味
Dual APIは 後方互換性のない変更 が発生し得る
実験的機能 は将来のリリースで削除される可能性もある
本番環境での利用は推奨されない

開発者コミュニティへのフィードバック募集

開発者コミュニティへのフィードバック募集

WooCommerceチームは、Dual APIエンジンが実際に有用かどうか、非実験的な状態でWooCommerce本体に含めるべきか、改善点はないかについて、開発者からの意見を求めている。

フィードバックはGitHubの専用ディスカッションページで受け付けている。Dual APIを試した開発者は、実際の使用感や要望を共有することで、今後の方向性に影響を与えることができる。

この記事のポイント

  • WooCommerce 11.2でDual APIエンジンがコアから削除され、専用プラグインとして独立した
  • 10.9〜11.1の検証用商品・クーポンAPIは削除されるため、利用者は移行が必要
  • プラグインの要件はWooCommerce 11.2以上、PHP 8.1以上
  • 依存関係はプラグインヘッダーで宣言する
  • 引き続き実験的ステータスであり、本番利用は推奨されない
海田 洋祐

・ 複数業界における17年間のデジタルビジネス開発経験 ・ ウェブサイト開発のためのHTML、PHP、CSS、JavaScript等の実用的知識 ・ 15ヶ国語対応の多言語SaaSの開発経験 ・ 17年間にも及ぶ、Eコマース長期運営経験 ・ 幅広い業界でのSEO最適化の豊富な経験

この記事に関連するサービス

メッセージを残す