@uecsio/pages-api
v2.3.4
Published
A reusable NestJS API Pages module for content management
Maintainers
Readme
@uecsio/pages-api
A reusable NestJS Pages module for content management, built on top of @uecsio/nestjs-crud-module.
🚀 Features
- Full CRUD Operations: Create, Read, Update, Delete pages
- TypeORM Integration: Built-in database support
- Validation: Class-validator integration for DTOs
- Swagger Documentation: Auto-generated API documentation
- Automatic Discovery: seamless integration with
@uecsioecosystem
📦 Installation
npm install @uecsio/pages-api🔧 Dependencies
This package requires the following peer dependencies:
npm install @nestjs/common @nestjs/typeorm typeorm class-validator class-transformer @uecsio/nestjs-crud-module📖 Usage
Import the Module
Simply import PagesModule into your root AppModule. The module is self-configuring.
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { PagesModule } from '@uecsio/pages-api';
@Module({
imports: [
TypeOrmModule.forRoot({
// ... your database config
autoLoadEntities: true,
}),
PagesModule,
],
})
export class AppModule {}🔌 API Endpoints
The module automatically exposes the following REST endpoints under /pages:
GET /pages- List pages (supports pagination, filtering, sorting)GET /pages/:id- Get a specific pagePOST /pages- Create a new pagePATCH /pages/:id- Update a pageDELETE /pages/:id- Delete a page
🗄️ Database Migrations
The package includes database migrations that can be automatically discovered.
Automatic Discovery
import { PagesModule } from '@uecsio/pages-api';
// ... imports
@Module({
imports: [
TypeOrmModule.forRoot({
// ... config
// Entities and migrations are automatically loaded if you use auto-discovery
// or you can import them from PagesModule metadata if needed
}),
PagesModule,
],
})
export class AppModule {}Manual Configuration
If you need to manually configure migrations:
import { PagesMigrationConfig } from '@uecsio/pages-api';
// Use PagesMigrationConfig.entities and PagesMigrationConfig.migrations
// in your TypeORM configuration.📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
