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

🚀 ロケーション機能

ロケーション機能は、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


🔗 関連ドキュメント