Skip to main content
Version: 0.6.0 (Previous)

📄 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 pagination
    • limit?: 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']);