🛣️ プロフィールルート
プロフィールルートは、NodeBlocksアプリケーションでプロフィール関係管理操作のための事前設定されたHTTPエンドポイントを提供します。これらのルートは、ブロック、バリデーター、ミドルウェアを組み合わせて、適切な認証、認可、エラー処理を含む完全なAPIエンドポイントを作成します。
🎯 概要
プロフィールルートは以下の目的で設計されています:
- 完全なAPIエンドポイントの提供 - プロフィール関係管理操作のため
- ブロックとバリデーターの組み合わせ - 安全な操作のため
- 認証と認可チェックの含める
- 関数合成パターンのサポート
- ロギングとエラー管理の自動処理
- ソーシャル関係のサポート - フォロー、組織フォロー、製品いいねを含む
📋 ルート構造
各プロフィールルートは一貫したパターンに従います:
- HTTP Method: 操作タイプを定義(GET、PUT、DELETE)
- Path: パラメータ付きエンドポイントURLを指定
- Handler: ビジネスロジック用の合成関数チェーン
- Validators: 認証と認可チェック
🔧 利用可能なプロフィールルート
createProfileFollowRoute
PUT /profiles/:profileId/profile-follows/:followProfileId 経由でプロフィールフォロー関係を作成します。
目的: プロフィール間のソーシャルフォロー関係を作成するAPIエンドポイントを提供し、重複を自動的に防止し、適切な認証と認可を確保します。
ルート詳細:
- Method:
PUT - Path:
/profiles/:profileId/profile-follows/:followProfileId - 認証: 必須(Bearerトークン)
Blocks: getUserById, createProfileFollow
Validators: isAuthenticated, some(checkIdentityType(['admin']), ownsProfile(['params', 'requestParams', 'profileId']))
使用例:
import { routes } from '@nodeblocks/backend-sdk';
// Register route with Express app
app.use('/api', routes.createProfileFollowRoute);
deleteProfileFollowRoute
DELETE /profiles/:profileId/profile-follows/:followProfileId 経由でプロフィールフォロー関係を削除します。
目的: プロフィール間のソーシャルフォロー関係を削除する(フォロー解除)APIエンドポイントを提供し、適切な認証と認可を確保します。
ルート詳細:
- Method:
DELETE - Path:
/profiles/:profileId/profile-follows/:followProfileId - 認証: 必須(Bearerトークン)
Blocks: getUserById, deleteProfileFollow
Validators: isAuthenticated, some(checkIdentityType(['admin']), ownsProfile(['params', 'requestParams', 'profileId']))
使用例:
import { routes } from '@nodeblocks/backend-sdk';
// Register route with Express app
app.use('/api', routes.deleteProfileFollowRoute);
getProfileFollowersRoute
GET /profiles/:profileId/followers 経由でプロフィールフォロワーを取得します。
目的: 特定のプロフィールのフォロワーのページネーション付きリストを取得するAPIエンドポイントを提供し、正規化されたアバターURLを含みます。
ルート詳細:
- Method:
GET - Path:
/profiles/:profileId/followers - 認証: 必須(Bearerトークン)
Blocks: getUserById, buildProfileFollowersByFollowProfileIdQuery, findProfiles, normalizeFollowers
Validators: isAuthenticated, some(checkIdentityType(['admin']), ownsProfile(['params', 'requestParams', 'profileId']))
使用例:
import { routes } from '@nodeblocks/backend-sdk';
// Register route with Express app
app.use('/api', routes.getProfileFollowersRoute);
createOrganizationFollowRoute
PUT /profiles/:profileId/organization-follows/:followOrganizationId 経由で組織フォロー関係を作成します。
目的: 組織フォロー関係を作成するAPIエンドポイントを提供し、プロフィールが組織をフォローできるようにします。
ルート詳細:
- Method:
PUT - Path:
/profiles/:profileId/organization-follows/:followOrganizationId - 認証: 必須(Bearerトークン)
Blocks: getUserById, getOrganizationById, createOrganizationFollow
Validators: isAuthenticated, some(checkIdentityType(['admin']), ownsProfile(['params', 'requestParams', 'profileId']))
使用例:
import { routes } from '@nodeblocks/backend-sdk';
// Register route with Express app
app.use('/api', routes.createOrganizationFollowRoute);
deleteOrganizationFollowRoute
DELETE /profiles/:profileId/organization-follows/:followOrganizationId 経由で組織フォロー関係を削除します。
目的: 組織フォロー関係を削除するAPIエンドポイントを提供し、プロフィールが組織のフォローを解除できるようにします。
ルート詳細:
- Method:
DELETE - Path:
/profiles/:profileId/organization-follows/:followOrganizationId - 認証: 必須(Bearerトークン)
Blocks: getUserById, getOrganizationById, deleteOrganizationFollow
Validators: isAuthenticated, some(checkIdentityType(['admin']), ownsProfile(['params', 'requestParams', 'profileId']))
使用例:
import { routes } from '@nodeblocks/backend-sdk';
// Register route with Express app
app.use('/api', routes.deleteOrganizationFollowRoute);
createProductLikeRoute
PUT /profiles/:profileId/product-likes/:likeProductId 経由でユーザープロフィールの製品いいね関係を作成します。
目的: プロフィールが製品をいいねまたはお気に入りに追加できるようにします。
ルート詳細:
- Method:
PUT - Path:
/profiles/:profileId/product-likes/:likeProductId - 認証: 必須(Bearerトークン)
Blocks: getUserById, getProductById, createProductLike
Validators: isAuthenticated, some(checkIdentityType(['admin']), ownsProfile(['params', 'requestParams', 'profileId']))
使用例:
import { routes } from '@nodeblocks/backend-sdk';
// Register route with Express app
app.use('/api', routes.createProductLikeRoute);
deleteProductLikeRoute
DELETE /profiles/:profileId/product-likes/:likeProductId 経由でユーザープロフィールから製品いいねを削除します。
目的: プロフィールが製品のいいねを解除またはお気に入りから削除できるようにします。
ルート詳細:
- Method:
DELETE - Path:
/profiles/:profileId/product-likes/:likeProductId - 認証: 必須(Bearerトークン)
Blocks: getUserById, getProductById, deleteProductLike
Validators: isAuthenticated, some(checkIdentityType(['admin']), ownsProfile(['params', 'requestParams', 'profileId']))
使用例:
import { routes } from '@nodeblocks/backend-sdk';
// Register route with Express app
app.use('/api', routes.deleteProductLikeRoute);
🔗 関連ドキュメント
- プロフィールスキーマ - プロフィールデータ検証とコントラクト
- プロフィールブロック - プロフィールビジネスロジック関数