メインコンテンツまでスキップ
バージョン: 0.14.0 (最新)

🚗 ドライバー

ドライバーは、NodeBlocks サービスをデータベース、メールプロバイダー、クラウドストレージ、住所検索 API、OAuth プロバイダーなどの外部システムに接続するファクトリー関数および統合です。SDK の drivers 名前空間にあります。

インポートパターン

ドライバーはメインパッケージエントリーから名前空間としてエクスポートされます。@nodeblocks/backend-sdk/drivers というサブパスはありません。

import { drivers } from '@nodeblocks/backend-sdk';

const {
getMongoClient,
withMongo,
getSendGridClient,
setBaseUrl,
createFileStorageDriver,
createJapanPostDriver,
createGoogleOAuthDriver,
createTwitterOAuthDriver,
createLineOAuthDriver,
verifyGoogleCallback,
verifyTwitterCallback,
verifyLineCallback,
PROVIDER_GOOGLE,
PROVIDER_TWITTER,
PROVIDER_LINE,
TWITTER_CALLBACK_STATE_SESSION_KEY,
} = drivers;

同じ名前空間の型のみのエクスポート(FileStorageDriverJapanPostDriverSendGridMail)は型の位置で利用できます。以下のを参照してください。

接続パターン

パターン使用箇所方法
データストアMongoDB(getMongoClientwithMongoサービスの dataStores 引数を通じてコレクションを渡します。
第 3 引数のオプションファイルストレージ、メール、住所検索、OAuth{ fileStorageDriver }{ mailService }{ findAddressDriver }{ googleOAuthDriver, ... } を通じてドライバーを渡します。

ドライバーファクトリーは同期です。createFileStorageDrivergetSendGridClient、OAuth ファクトリーなどで await は不要です。withMongo(...) は完全に呼び出すと、コレクションを取得するための Promise を返します。


ドライバーモジュール

ドライバー主なエクスポートドキュメント
MongoDBgetMongoClient, withMongoデータベース
SendGridgetSendGridClient, setBaseUrl, SendGridMailメールサービス
Google Cloud StoragecreateFileStorageDriver, FileStorageDriverファイルストレージ
OAuth (Google, Twitter, LINE)createGoogleOAuthDriver, createTwitterOAuthDriver, createLineOAuthDriver, verifyGoogleCallback, verifyTwitterCallback, verifyLineCallback, PROVIDER_GOOGLE, PROVIDER_TWITTER, PROVIDER_LINE, TWITTER_CALLBACK_STATE_SESSION_KEYOAuth
Japan PostcreateJapanPostDriver, JapanPostDriverJapan Post

SDK ソースの src/drivers/index.ts は、file-storagejapan-postmongooauthsendgrid を再エクスポートします。


利用するサービス

ドライバーファクトリー注入名使用箇所
createFileStorageDriverfileStorageDriver組織サービスプロフィールサービス製品サービスチャットサービス
createJapanPostDriverfindAddressDriver住所サービス
getSendGridClientmailService認証サービス
createGoogleOAuthDrivercreateTwitterOAuthDrivercreateLineOAuthDrivergoogleOAuthDrivertwitterOAuthDriverlineOAuthDriver認証サービス

types 名前空間 — ドライバーで使用する共有インターフェース(SDK ソース:src/types/email.tssrc/types/oauth.ts):

import { types } from '@nodeblocks/backend-sdk';

type MailService = types.MailService;
type MailData = types.MailData;
type GoogleOAuthDriver = types.GoogleOAuthDriver;
type GoogleProfile = types.GoogleProfile;
// TwitterProfile, LineProfile, OAUTH_LOGIN, OAUTH_SIGNUP, ...

blocks 名前空間 — ドライバー注入で使用するブロック層の契約(SDK ソース:src/blocks/address.ts):

import { blocks } from '@nodeblocks/backend-sdk';

type FindAddressDriver = blocks.FindAddressDriver;

FindAddressDriver は、住所サービスでの findAddressDriver 注入の契約です。createJapanPostDriver はこのインターフェースを満たすドライバーを返します。

drivers 名前空間の型 — ファクトリーとともにエクスポートされるドライバーの戻り値型:

import type { drivers as DriverExports } from '@nodeblocks/backend-sdk';

type FileStorageDriver = DriverExports.FileStorageDriver;
type JapanPostDriver = DriverExports.JapanPostDriver;
type SendGridMail = DriverExports.SendGridMail;
ソースファイル
FileStorageDriversrc/drivers/file-storage.ts
JapanPostDriversrc/drivers/japan-post.ts
SendGridMailsrc/drivers/sendgrid.ts

次のステップ