Skip to main content
Version: 🚧 Canary

📄 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']);