スケーラブルなブログバックエンドを構築するには、適切に構造化されたアーキテクチャ、認証システム、そして適切にドキュメント化されたAPIが必要です。NestJS MongoDB Blog APIは、開発者がNestJS、MongoDB、JWT authentication Swaggerドキュメントを使用して最新のブログプラットフォームを迅速に構築できるように設計された、本番環境対応のバックエンドテンプレートです。
このプロジェクトは、ユーザー、投稿、カテゴリ、タグ、コメント、認証、ロールベースのアクセス制御のモジュールを含む完全な RESTful API を提供します。
リポジトリ: https://github.com/bfotool/nestjs-mongodb-blog-base
NestJS MongoDBブログAPIとは
NestJS MongoDB ブログ API は、 NestJS 11 と MongoDBを使用して構築されたオープンソースのバックエンド テンプレートであり、完全に機能するブログ REST API を提供します。
これは、次のものを構築するための基盤として機能するように設計されています。
ブログプラットフォーム
ヘッドレスCMSシステム
コンテンツ公開API
ドキュメントウェブサイト
開発者ポートフォリオブログ
このプロジェクトは、 NestJS が推奨するモジュール アーキテクチャに従っており、スケーラビリティと保守性を保証します。
リポジトリ: https://github.com/bfotool/nestjs-mongodb-blog-base
主な特徴
認証と承認
API には、JWT トークンを使用した安全な認証システムが含まれています。
主な認証機能は次のとおりです。
JWTアクセストークンとリフレッシュトークン
ロールベースのアクセス制御(RBAC)
bcryptによるパスワードハッシュ
ガードを使用した保護された API ルート
トークンリフレッシュメカニズム
次の 3 つのデフォルトのユーザー ロールがサポートされています。
管理者
著者
リーダー
これにより、さまざまな API エンドポイント間での権限の管理が容易になります。
完全なブログモジュール
このプロジェクトには、すべてのコアブログ機能をカバーする、完全に実装されたモジュールがいくつか含まれています。
認証モジュール
認証とユーザー セッションを処理します。
エンドポイントには次のものが含まれます。
POST /auth/registerPOST /auth/loginPOST /auth/refreshPOST /auth/logoutGET /auth/profile
ユーザーモジュール
ユーザー アカウントとプロファイルを管理します。
エンドポイント:
GET /usersGET /users/:idPATCH /users/:idDELETE /users/:id
書き込み操作には管理者権限が必要です。
投稿モジュール
投稿モジュールはブログのコンテンツを管理します。
機能は次のとおりです:
ページネーション
カテゴリ、タグ、著者によるフィルタリング
ソート
全文検索
注目の投稿
エンドポイント:
GET /postsGET /posts/featuredGET /posts/:slugPOST /postsPATCH /posts/:idDELETE /posts/:id
カテゴリモジュール
ブログの投稿をカテゴリ別に整理します。
エンドポイント:
GET /categoriesGET /categories/:slugPOST /categoriesPATCH /categories/:idDELETE /categories/:id
タグモジュール
ブログ投稿に柔軟なタグ付けを可能にします。
エンドポイント:
GET /tagsGET /tags/:slugPOST /tagsPATCH /tags/:idDELETE /tags/:id
コメントモジュール
コメント スレッドとネストされた返信をサポートします。
エンドポイント:
GET /comments/post/:postIdGET /comments/:id/repliesPOST /commentsPATCH /comments/:idDELETE /comments/:id
API機能
ページネーション
すべてのリスト エンドポイントはページ区切りをサポートしています。
例:
GET /posts?page=1&limit=6
フィルタリング
投稿は、カテゴリ、タグ、または著者別にフィルタリングできます。
例:
GET /posts?category=web-development
全文検索
投稿には検索機能が実装されています。
例:
GET /posts?search=nestjs+mongodb
ソート
API 応答はさまざまなフィールドで並べ替えることができます。
例:
GET /posts?sortBy=createdAt&sortOrder=desc
自動スラグ生成
投稿を作成すると、システムはslugifyを使用してタイトルから URL に適したスラッグを自動的に生成します。
例:
Building REST APIs with NestJS
→ building-rest-apis-with-nestjs
読書時間の計算
API は投稿のコンテンツの長さに基づいて推定読書時間を自動的に計算します。
一貫したAPIレスポンス形式
すべての応答は標準構造に従います。
{
"success": true,
"data": {},
"timestamp": "2026-01-01T10:00:00Z"
}
これにより、フロントエンドの統合とデバッグが改善されます。
テクノロジースタック
バックエンドは最新の Node.js スタックを使用して構築されています。
| 層 | テクノロジー |
|---|---|
| フレームワーク | ネストJS 11 |
| 言語 | タイプスクリプト 5.7 |
| データベース | モンゴDB 8 |
| ODM | マングース8 |
| 認証 | Passport.js + JWT |
| 検証 | クラス検証 |
| APIドキュメント | スワガーオープンAPI |
| パスワードのセキュリティ | bcrypt |
| スラグジェネレーター | スラッグ化 |
| テスト | 冗談 |
プロジェクト構造
このプロジェクトはモジュラーアーキテクチャに従っています。
src/
├── auth/
├── users/
├── posts/
├── categories/
├── tags/
├── comments/
├── common/
└── seed/
重要なコンポーネントは次のとおりです。
DTO検証
マングーススキーマ
グローバル例外フィルター
レスポンスインターセプター
JWTガード
ロールデコレータ
この構造により、コードベースが整理され、スケーラブルになります。
プロジェクトのインストールと実行方法
前提条件
インストールする前に、次のものを用意してください。
Node.js 18.17以上
MongoDB 6以上
npm、yarn、またはpnpm
リポジトリのクローンを作成する
git clone https://github.com/bfotool/nestjs-mongodb-blog-base
cd nestjs-mongodb-blog-base
依存関係をインストールする
npm install
環境変数を設定する
サンプル環境ファイルをコピーします。
cp .env.example .env
次の値を更新します。
MONGODB_URI=
JWT_ACCESS_SECRET=
JWT_REFRESH_SECRET=
データベースをシードする
データベースにサンプルデータを入力します。
npm run seed
リセットして再シードするには:
npm run seed:refresh
開発サーバーを起動する
npm run start:dev
API ベース URL:
http://localhost:3000/api/v1
Swagger ドキュメント:
http://localhost:3000/api/docs
デフォルトのシードデータ
シード スクリプトはテスト用のサンプル データを生成します。
| 実在物 | カウント |
|---|---|
| ユーザー | 5 |
| カテゴリー | 5 |
| タグ | 28 |
| 投稿 | 10 |
| コメント | 6 |
デフォルトのログイン資格情報
シードされたすべてのユーザーのパスワード:
admin123
アカウント:
| 役割 | メール |
|---|---|
| 管理者 | [email protected] |
| 著者 | [email protected] |
| 著者 | [email protected] |
| 著者 | [email protected] |
| リーダー | [email protected] |
Swagger APIドキュメント
インタラクティブ API ドキュメントは次の場所から入手できます。
http://localhost:3000/api/docs
Swagger は以下を提供します:
インタラクティブなエンドポイントテスト
JWT authenticationサポート
リクエストとレスポンスのスキーマドキュメント
このリポジトリを使用する理由
NestJS MongoDB ブログ API は、最新のブログ バックエンドを構築する開発者にとって強力な出発点となります。
利点は次のとおりです:
クリーンなNestJSモジュールアーキテクチャ
組み込み認証とRBAC
すぐに使えるSwagger APIドキュメント
Mongooseを使用したMongoDB統合
データベースシーディングシステム
生産準備が整ったプロジェクト構造



