📄 Pagination Schema Blocks
Pagination schema blocks provide JSON Schema definitions for standardized pagination parameters and metadata across Nodeblocks applications. These schemas ensure consistent pagination behavior and response formatting.
🎯 Overview
Pagination schema blocks are designed to:
- Standardize pagination across all API endpoints
- Validate pagination parameters with proper constraints
- Ensure consistent pagination metadata in responses
- Support reusable string arrays for common operations
- Enable composition with entity-specific schemas
📋 Pagination Schema Types
Query Parameter Schemas
Schemas for pagination query parameters used in API requests.
Response Metadata Schemas
Schemas for pagination metadata included in API responses.
Utility Schemas
Reusable schemas for common pagination-related operations.
🔧 Available Pagination Schemas
paginationQueryParametersSchema
Pagination query parameters schema for standardized pagination across API endpoints.
Purpose: Provides consistent pagination parameters for list/search endpoints
Schema Details:
- Type:
OpenAPIParameter[]
- Parameters:
page?: number
(1-1000, optional) - Page number for paginationlimit?: number
(1-50, optional) - Number of records per page
Usage:
import { schemas } from '@nodeblocks/backend-sdk';
const { paginationQueryParametersSchema } = schemas;
const schema = withSchema({
parameters: [
...paginationQueryParametersSchema,
// other parameters
]
});
// Used in: GET /identities?page=1&limit=10
paginationSchema
Pagination metadata schema for paginated response information.
Purpose: Validates pagination metadata in API responses
Schema Details:
- Type:
object
- Required Fields:
page
,limit
,total
,total_pages
- Additional Properties:
false
(strict validation) - Properties:
page: number
- Current page number (minimum: 1)limit: number
- Records per page (minimum: 1)total: number
- Total number of records (minimum: 0)total_pages: number
- Total number of pages (minimum: 0)
Usage:
import { schemas } from '@nodeblocks/backend-sdk';
const { paginationSchema } = schemas;
const validate = ajv.compile(paginationSchema.schemas as SchemaDefinition);
const isValid = validate({
page: 1,
limit: 10,
total: 100,
total_pages: 10
});
arrayOfStringsSchema
Array of strings schema definition for reusable string array validation.
Purpose: Validates arrays containing only string values
Schema Details:
- Type:
array
- Items:
string
- Additional Properties:
false
(strict validation)
Usage:
import { schemas } from '@nodeblocks/backend-sdk';
const { arrayOfStringsSchema } = schemas;
const validate = ajv.compile(arrayOfStringsSchema);
const isValid = validate(['item1', 'item2', 'item3']);