PaymentKit Node.js SDKは、モジュール式のリソース指向アーキテクチャに基づいて構築されています。この設計により、PaymentKit APIのさまざまな部分とのやり取りが、一貫性があり、予測可能で、堅牢であることが保証されます。その中核として、SDKは中央ユーティリティを使用して、各APIリソース(Customers、Productsなど)のメソッドを生成します。これにより、基盤となるPaymentKit Blockletとのすべての通信が処理されます。
この構造は、コンポーネント間の通信の複雑さを抽象化し、アプリケーションのビジネスロジックに集中できるようにします。

リソースファクトリ
SDKによって公開される各リソース(例:products、customers、subscriptions)は、中央ファクトリによって生成されたメソッドのコレクションです。このファクトリパターンにより、すべてのAPIメソッドが一貫したシグネチャと動作を共有することが保証されます。これを担当する主な関数は createResourceMethod と createResourceCreateMethod です。
これらのファクトリは、HTTPメソッドとAPIパスを定義する仕様を受け取り、完全なリクエストライフサイクルを処理する非同期関数を返します。
products リソースが内部でどのように構築されるかの概念的な例を次に示します。
Conceptual Example
import { createResourceMethod, createResourceCreateMethod } from './resource';
// これはパターンを説明するための簡略化された例です。
const products = {
// 新しいリソースを作成するためのメソッド
create: createResourceCreateMethod({ method: 'POST', path: '/v1/products' }),
// 取得、更新、一覧表示、削除のためのメソッド
retrieve: createResourceMethod({ method: 'GET', path: '/v1/products/{id}' }),
update: createResourceMethod({ method: 'PUT', path: '/v1/products/{id}' }),
list: createResourceMethod({ method: 'GET', path: '/v1/products' }),
del: createResourceMethod({ method: 'DELETE', path: '/v1/products/{id}' }),
};このアプローチにより、SDKはすべてのAPIエンドポイントで統一された開発者エクスペリエンスを提供しながら、簡単に保守および拡張できます。
自動コンポーネント処理
APIリクエストが送信される前に、SDKはPaymentKit Blockletが実行中で利用可能であることを自動的に確認します。これは ensureComponentRunning ユーティリティによって管理されます。
SDKメソッドを呼び出すと:
- SDKはまずPaymentKitコンポーネントのステータスを確認します。
- コンポーネントが実行されていない場合、開始されるのを待ちます。
- コンポーネントの実行が確認されると、APIリクエストがディスパッチされます。
- コンポーネントの起動に失敗した場合、メソッド呼び出しはエラーをスローします。
この組み込みのチェックにより、アプリケーションコードからPaymentKitコンポーネントのライフサイクルを手動で管理する負担が取り除かれ、一般的なエラーや競合状態が防止されます。
すべての通信は最終的に @blocklet/sdk の component.call 関数によって処理されます。これは、安全なブロックレット間通信のための低レベルメカニズムを提供します。
シームレスな環境管理
リソースファクトリはまた、SDKの現在の設定に基づいて、すべてのAPIリクエストに livemode パラメータを自動的に注入します。ライブモードまたはテストモードで操作しているかどうかにかかわらず、SDKは追加の作業なしでPaymentKit APIに正しいパラメータを渡す処理を行います。
これは、1つの設定変更で環境を切り替えることができ、その後のすべてのAPI呼び出しが正しくルーティングされることを意味します。