NestJS MongoDB ブログ API テンプレート – ブログ向けのフル機能 REST バックエンド

スケーラブルなブログバックエンドを構築するには、適切に構造化されたアーキテクチャ、認証システム、そして適切にドキュメント化された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/register

  • POST /auth/login

  • POST /auth/refresh

  • POST /auth/logout

  • GET /auth/profile

ユーザーモジュール

ユーザー アカウントとプロファイルを管理します。

エンドポイント:

  • GET /users

  • GET /users/:id

  • PATCH /users/:id

  • DELETE /users/:id

書き込み操作には管理者権限が必要です。

投稿モジュール

投稿モジュールはブログのコンテンツを管理します。

機能は次のとおりです:

  • ページネーション

  • カテゴリ、タグ、著者によるフィルタリング

  • ソート

  • 全文検索

  • 注目の投稿

エンドポイント:

  • GET /posts

  • GET /posts/featured

  • GET /posts/:slug

  • POST /posts

  • PATCH /posts/:id

  • DELETE /posts/:id

カテゴリモジュール

ブログの投稿をカテゴリ別に整理します。

エンドポイント:

  • GET /categories

  • GET /categories/:slug

  • POST /categories

  • PATCH /categories/:id

  • DELETE /categories/:id

タグモジュール

ブログ投稿に柔軟なタグ付けを可能にします。

エンドポイント:

  • GET /tags

  • GET /tags/:slug

  • POST /tags

  • PATCH /tags/:id

  • DELETE /tags/:id

コメントモジュール

コメント スレッドとネストされた返信をサポートします。

エンドポイント:

  • GET /comments/post/:postId

  • GET /comments/:id/replies

  • POST /comments

  • PATCH /comments/:id

  • DELETE /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統合

  • データベースシーディングシステム

  • 生産準備が整ったプロジェクト構造

リポジトリ: https://github.com/bfotool/nestjs-mongodb-blog-base