メインコンテンツまでスキップ
バージョン: 0.13.0 (Previous)

🔄 Common

Commonは、正規化、アクセスチェック、ページネーション、レスポンスのために、SDKサービスやカスタムルート合成で再利用されるクロスドメインブロック、ユースルブロック、バリデーター、スキーマを文書化します。

まずはここから

エクスポートを持つSDK名前空間から共有契約をインポートします:

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

const normalized = blocks.normalizeRawDocument({
_id: 'database-id',
id: 'public-id',
});

const requireAdmin = validators.checkIdentityType(['admin']);
const paginationParameters = schemas.paginationQueryParametersSchema;

normalizeRawDocumentはMongoDBの_idなしで不変なResultを返します;checkIdentityTypeはルートバリデーターを返します;paginationQueryParametersSchemaは再利用可能なOpenAPIクエリパラメータの配列です。

Commonはマウント可能なサービスではなく、フィーチャ、ハンドラ、ルートを定義しません。コンシューマーはblocksschemasvalidatorsを通じてパブリックエクスポートをインポートし、ドメインサービスまたはカスタムルートに合成します。ブロックはエラー、レスポンス正規化、リダイレクト、安全なパスワード生成を提供します。最初のグループはblocks/commonによってエクスポートされます。リダイレクトとパスワードヘルパーはblocks/utilsによってエクスポートされます。スキーマは共有JSONスキーマとOpenAPI定義を提供します。アドレス固有のスキーマはAddressで文書化されています。バリデーターは認証、認可、チェックの合成、所有検証を行います。バリデーターファクトリはルートペイロードを通じて設定を受け取ります。認証対応バリデーターはcontext.authenticateが提供された时使用し、そうでない場合はBearerトークン認証にフォールバックします。データベース対応バリデーターはまたcontext.db内の名前付きコレクションを必要とします。

一般的なタスク

タスクここから始める契約
データを返す前にMongoDB _id を削除normalizeRawDocumentnormalizeRawDocument または normalizeDocuments
一貫性のある空レスポンスボディを生成normalizeEmptyBodynormalizeEmptyBody
通知タイムスタンプアンカーを検証assertHasCreatedAtassertHasCreatedAt
OAuthレスポンスをリダイレクトredirectToredirectTo
OAuthフォールバックパスワードを生成generateRandomPasswordgenerateRandomPassword
標準的な pagelimit クエリパラメータを追加paginationQueryParametersSchemapaginationQueryParametersSchema
すべてのまたは任意のアクセスチェックを要求all または someall または some
アイデンティティタイプまたは所有によってアクセスを制限checkIdentityTypeisSelf、または ownsResourcecheckIdentityTypeisSelf、または ownsResource

リファレンスマップ

ページ目的
Commonブロック共有エラー、正規化子、リダイレクト動作、パスワード生成。
Commonスキーマページネーション、レスポンス、ファイル、監査、連絡先定義。
Commonバリデーター認証、アイデンティティタイプ、所有、バリデーター合成契約。

関連モジュール

Authenticationは共有認証・認可バリデーターを合成し、空ボディ正規化を使用します。OAuthはプロバイダーフロー中にリダイレクトと生成されたパスワードを消費します。Chatは共有ページネーションスキーマ、ドキュメント正規化、所有合成を消費します。Productはバリエーションルート用に共有ドキュメント正規化子とアクセスバリデーターを使用します。Addressはアドレスデータスキーマと郵便番号検索契約を所有しています。バックエンド型スキーマバリデーターは、これらのエクスポートが使用するルートペイロードと合成契約を定義します。