🚀 ロケーション機能
ロケーション機能は、NodeBlocksアプリケーションでロケーション管理操作用の完全な事前合成機能を提供します。これらの機能は、スキーマとルートを組み合わせて、適切なバリデーション、認証、エラーハンドリングを含むすぐに使用できるAPIエンドポイントを作成します。
🎯 概要
ロケーション機能は以下の目的で設計されています:
- ロケーション管理操作用の完全なAPIエンドポイントを提供します
- バリデーションされた操作のためにスキーマとルートを組み合わせます
- 認証と認可チェックを自動的に含みます
- 関数合成パターンをサポートします
- ロギングとエラー管理をシームレスに処理します
- 親子と祖先追跡を含む階層関係をサポートします
📋 機能構造
各ロケーション機能は一貫した合成パターンに従います:
- スキーマ: 入力データとパラメータをバリデーション
- ルート: ブロックを含むHTTPエンドポイントを提供
- 構成:
compose関数を使用してスキーマとルートを組み合わせ
🔧 利用可能なロケーション機能
createLocationFeature
スキーマバリデーションと階層ルーティングを含むロケーション作成機能。
目的: 自動階層関係管理、バリデーション、適切なエラーハンドリングを含む完全なロケーション作成機能を提供します。
構成:
- スキーマ:
createLocationSchema- 必須フィールドと階層的な親サポートを含むロケーション作成リクエストデータをバリデーション - ルート:
createLocationRoute- 階層的な親サポートと祖先構築を含むPOST/locations
使用例:
import { features } from '@nodeblocks/backend-sdk';
// With database configuration
app.use('/api', defService(partial(features.createLocationFeature, [{ dataStores: db }])));
APIエンドポイント: POST /api/locations
getLocationFeature
スキーマバリデーションとパブリックルーティングを含むロケーション取得機能。
目的: ロケーションデータへのパブリックアクセスのための適切なバリデーションとエラーハンドリングを含むロケーション取得機能を提供します。
構成:
- スキーマ:
getLocationSchema- ロケーション取得用のlocationIdパスパラメータをバリデーション - ルート:
getLocationRoute- パブリックアクセスとロケーション検索を含むGET/locations/:locationId
使用例:
import { features } from '@nodeblocks/backend-sdk';
// With database configuration
app.use('/api', defService(partial(features.getLocationFeature, [{ dataStores: db }])));
APIエンドポイント: GET /api/locations/:locationId
updateLocationFeature
スキーマバリデーションと管理者ルーティングを含むロケーション更新機能。
目的: 部分的なフィールド変更、適切なバリデーション、管理者専用アクセス制御を含むロケーション更新機能を提供します。
構成:
- スキーマ:
updateLocationSchema- 部分更新とlocationIdパスパラメータ用のオプションロケーションフィールドをバリデーション - ルート:
updateLocationRoute- 管理者認証と更新処理を含むPATCH/locations/:locationId
使用例:
import { features } from '@nodeblocks/backend-sdk';
// With database configuration
app.use('/api', defService(partial(features.updateLocationFeature, [{ dataStores: db }])));
APIエンドポイント: PATCH /api/locations/:locationId
deleteLocationFeature
スキーマバリデーションと階層バリデーションルーティングを含むロケーション削除機能。
目的: 孤立した子ロケーションを防ぎ、データ整合性を確保するための包括的な階層バリデーションを含むロケーション削除機能を提供します。
構成:
- スキーマ:
deleteLocationSchema- 削除リクエスト用のlocationIdパスパラメータをバリデーション - ルート:
deleteLocationRoute- 階層バリデーションと管理者認証を含むDELETE/locations/:locationId
使用例:
import { features } from '@nodeblocks/backend-sdk';
// With database configuration
app.use('/api', defService(partial(features.deleteLocationFeature, [{ dataStores: db }])));
APIエンドポイント: DELETE /api/locations/:locationId
findLocationsFeature
スキーマバリデーションとページネーションルーティングを含むロケーション検索機能。
目的: ページネーションサポートを含むロケーション検索およびリスト表示機能を提供し、パブリックアクセスを通じたロケーションデータの効率的な閲覧と発見を可能にします。
構成:
- スキーマ:
findLocationsSchema- ロケーション検索リクエスト用のページネーションクエリパラメータをバリデーション - ルート:
findLocationsRoute- ページネーションサポートとパブリックアクセスを含むGET/locations
使用例:
import { features } from '@nodeblocks/backend-sdk';
// With database configuration
app.use('/api', defService(partial(features.findLocationsFeature, [{ dataStores: db }])));
APIエンドポイント: GET /api/locations
🔗 関連ドキュメント
- ロケーションスキーマ - ロケーションデータバリデーションとコントラクト
- ロケーションブロック - ロケーションビジネスロジック関数
- ロケーションルート - HTTPエンドポイント定義