# Rest Generic Class ## Docs - [Introduction](https://mintlify.wiki/charlietyn/rest-generic-class/introduction.md): Overview of the Rest Generic Class Laravel package - a powerful solution for building RESTful APIs with dynamic filtering, relation loading, and hierarchical data support - [Core Concepts](https://mintlify.wiki/charlietyn/rest-generic-class/concepts.md): Understanding the Service-Controller-Model pattern, dynamic filtering system, relation loading, hierarchical data, caching strategy, and role-based field restrictions - [Quick Start](https://mintlify.wiki/charlietyn/rest-generic-class/quickstart.md): Build your first REST API with Rest Generic Class in 5 minutes - complete step-by-step guide with a working Product API example - [System Requirements](https://mintlify.wiki/charlietyn/rest-generic-class/installation/requirements.md): Prerequisites for installing Rest Generic Class Laravel package - [Installation Setup](https://mintlify.wiki/charlietyn/rest-generic-class/installation/setup.md): Step-by-step guide to install Rest Generic Class Laravel package - [Initial Configuration](https://mintlify.wiki/charlietyn/rest-generic-class/installation/configuration.md): Configure Rest Generic Class package for your Laravel application - [BaseModel Class](https://mintlify.wiki/charlietyn/rest-generic-class/core/models.md): Learn how to extend BaseModel to create models with built-in REST features, role-based field access control, and hierarchical data support - [BaseService Class](https://mintlify.wiki/charlietyn/rest-generic-class/core/services.md): Understand the service layer that powers REST operations with filtering, relations, pagination, and caching - [RestController Class](https://mintlify.wiki/charlietyn/rest-generic-class/core/controllers.md): Set up REST endpoints with automatic request processing, error handling, and CRUD operations - [Dynamic Filtering System](https://mintlify.wiki/charlietyn/rest-generic-class/core/filtering.md): Learn how to use the powerful dynamic filtering system with complex conditions, nested logic, and multiple operators - [Relation Loading](https://mintlify.wiki/charlietyn/rest-generic-class/core/relations.md): Learn how to eager-load relationships, filter related data, and work with nested relations in your REST API - [Hierarchical Data](https://mintlify.wiki/charlietyn/rest-generic-class/core/hierarchy.md): Learn how to work with self-referencing models, build tree structures, and query parent-child relationships - [Basic CRUD Operations](https://mintlify.wiki/charlietyn/rest-generic-class/guides/basic-usage.md): Learn the fundamentals of creating, reading, updating, and deleting records with Rest Generic Class - [Advanced Filtering](https://mintlify.wiki/charlietyn/rest-generic-class/guides/advanced-filtering.md): Master complex filtering scenarios with nested relations, multiple conditions, and safety limits - [Working with Relations](https://mintlify.wiki/charlietyn/rest-generic-class/guides/relation-loading.md): Master eager loading, field selection, and nested relation queries to avoid N+1 problems - [Hierarchical Data](https://mintlify.wiki/charlietyn/rest-generic-class/guides/hierarchical-data.md): Work with tree structures, parent-child relationships, and self-referencing models - [Cache Configuration and Usage](https://mintlify.wiki/charlietyn/rest-generic-class/guides/caching.md): Configure Redis, database, or file-based caching for optimal API performance - [Many-to-Many Relationships](https://mintlify.wiki/charlietyn/rest-generic-class/guides/many-to-many.md): Manage pivot tables with attach, detach, sync, and toggle operations - [Bulk Updates and Operations](https://mintlify.wiki/charlietyn/rest-generic-class/guides/bulk-operations.md): Optimize multiple record operations with bulk endpoints and transaction handling - [Role-Based Access Control with Spatie](https://mintlify.wiki/charlietyn/rest-generic-class/guides/permissions.md): Secure your API endpoints with Spatie Laravel Permission integration - [Configuration Overview](https://mintlify.wiki/charlietyn/rest-generic-class/configuration/overview.md): Learn how to configure the Rest Generic Class Laravel package - [Environment Variables](https://mintlify.wiki/charlietyn/rest-generic-class/configuration/environment-variables.md): Complete reference of all environment variables used by Rest Generic Class - [Cache Strategy](https://mintlify.wiki/charlietyn/rest-generic-class/configuration/cache-strategy.md): Configure response caching with Redis, database, or any Laravel cache store - [Validation Configuration](https://mintlify.wiki/charlietyn/rest-generic-class/configuration/validation.md): Configure validation caching and column validation behavior - [BaseModel](https://mintlify.wiki/charlietyn/rest-generic-class/api/base-model.md): Core model class providing validation, hierarchy, relations, and role-based field restrictions - [BaseModelMongo](https://mintlify.wiki/charlietyn/rest-generic-class/api/base-model-mongo.md): Base model class for MongoDB collections with REST API support - [BaseService](https://mintlify.wiki/charlietyn/rest-generic-class/api/base-service.md): Core service class providing query building, CRUD operations, caching, and export functionality - [RestController](https://mintlify.wiki/charlietyn/rest-generic-class/api/rest-controller.md): Base controller exposing RESTful endpoints with automatic error handling and request processing - [BaseFormRequest](https://mintlify.wiki/charlietyn/rest-generic-class/api/base-form-request.md): Base form request class for validation with REST Generic Class features - [HasDynamicFilter Trait](https://mintlify.wiki/charlietyn/rest-generic-class/api/traits/has-dynamic-filter.md): API reference for the HasDynamicFilter trait that powers dynamic filtering with complex conditions and operators - [ManagesManyToMany Trait](https://mintlify.wiki/charlietyn/rest-generic-class/api/traits/manages-many-to-many.md): API reference for the ManagesManyToMany trait that provides CRUD operations for BelongsToMany relationships - [ManagesOneToMany Trait](https://mintlify.wiki/charlietyn/rest-generic-class/api/traits/manages-one-to-many.md): API reference for the ManagesOneToMany trait that provides CRUD operations for HasMany relationships - [Permission Traits](https://mintlify.wiki/charlietyn/rest-generic-class/api/traits/has-permissions.md): API reference for HasPermissionsController and HasPermissionsService traits that integrate with Spatie Laravel Permission - [FilterRequestByRole](https://mintlify.wiki/charlietyn/rest-generic-class/api/middleware/filter-request-by-role.md): Middleware for role-based field filtering in mutation requests - [InjectRequestParams](https://mintlify.wiki/charlietyn/rest-generic-class/api/middleware/inject-request-params.md): Middleware for injecting parameters into requests with smart type casting - [SpatieAuthorize](https://mintlify.wiki/charlietyn/rest-generic-class/api/middleware/spatie-authorize.md): Automatic permission-based authorization using Spatie Laravel Permission - [TransformData](https://mintlify.wiki/charlietyn/rest-generic-class/api/middleware/transform-data.md): Middleware for transforming and validating incoming request data - [Validation Overview](https://mintlify.wiki/charlietyn/rest-generic-class/api/validation/overview.md): Custom Laravel validation rules for complex data validation scenarios - [ID Existence Rules](https://mintlify.wiki/charlietyn/rest-generic-class/api/validation/ids-exist-rules.md): Validation rules for checking ID existence in database tables - [Uniqueness Rules](https://mintlify.wiki/charlietyn/rest-generic-class/api/validation/unique-rules.md): Validation rules for pivot table and composite uniqueness constraints - [DatabaseErrorParser](https://mintlify.wiki/charlietyn/rest-generic-class/api/helpers/database-error-parser.md): Parse database errors into user-friendly messages with suggestions for PostgreSQL, MySQL, SQL Server, and MongoDB - [RequestBody](https://mintlify.wiki/charlietyn/rest-generic-class/api/helpers/request-body.md): Extract and manipulate parameters from request body supporting JSON, form-data, multipart, and any HTTP method - [Objectify](https://mintlify.wiki/charlietyn/rest-generic-class/api/helpers/objectify.md): Helper class for converting JSON strings to arrays with recursive mapping support - [Complete CRUD Example](https://mintlify.wiki/charlietyn/rest-generic-class/examples/simple-crud.md): Full working CRUD implementation with Model, Service, Controller, and Routes - [Real-World Filtering Examples](https://mintlify.wiki/charlietyn/rest-generic-class/examples/filtering-scenarios.md): Practical filtering scenarios for e-commerce, date ranges, and complex queries - [Cache Usage Examples](https://mintlify.wiki/charlietyn/rest-generic-class/examples/cache-scenarios.md): Real-world caching scenarios with Redis, multi-tenant setups, and performance optimization - [Edge Cases & Troubleshooting](https://mintlify.wiki/charlietyn/rest-generic-class/examples/edge-cases.md): Handling extreme scenarios, config issues, and production edge cases - [Troubleshooting](https://mintlify.wiki/charlietyn/rest-generic-class/help/troubleshooting.md): Common errors and solutions for Rest Generic Class - [Frequently Asked Questions](https://mintlify.wiki/charlietyn/rest-generic-class/help/faq.md): Common questions about Rest Generic Class for Laravel - [Security Guide](https://mintlify.wiki/charlietyn/rest-generic-class/help/security.md): Security features and best practices for Rest Generic Class - [Migration Guide](https://mintlify.wiki/charlietyn/rest-generic-class/help/migration-guide.md): Upgrading and migrating Rest Generic Class versions ## OpenAPI Specs - [openapi](https://mintlify.wiki/charlietyn/rest-generic-class/api-reference/openapi.json)