メインコンテンツまでスキップ
バージョン: 0.6.0 (Previous)

🔍 Category Schema Blocks

Category schema blocks provide JSON Schema definitions for category data validation in Nodeblocks applications. These schemas ensure data integrity and provide clear contracts for category-related API endpoints.


🎯 Overview​

Category schema blocks are designed to:

  • Validate category data before processing
  • Support hierarchical structures with parent-child relationships
  • Ensure data consistency across category operations
  • Enable category search and filtering capabilities
  • Support pagination for large category collections

📋 Category Schema Types​

Base Category Schemas​

Core category structures used as foundations for other schemas.

Category Creation Schemas​

Schemas for category creation with required field validation.

Category Update Schemas​

Schemas for category modifications with optional field validation.

Category Query Schemas​

Schemas for category filtering and pagination parameters.


🔧 Available Category Schemas​

categorySchema​

Base category schema with core category fields.

Purpose: Defines basic category structure for reuse

Schema Details:

  • Type: object
  • Required Fields: None
  • Additional Properties: false (strict validation)
  • Properties:
    • name?: string - Category name
    • description?: string - Category description
    • parent?: string - Parent category ID
    • status?: string - Category status

Usage:

import { schemas } from '@nodeblocks/backend-sdk';

const { categorySchema } = schemas;

const categorySchema = categorySchema({});
const validate = ajv.compile(categorySchema.schemas as SchemaDefinition);
const isValid = validate({
name: 'Electronics',
description: 'Electronic devices and accessories',
status: 'active'
});

createCategorySchema​

Category creation schema with required fields for new categories.

Purpose: Validates category data during creation

Schema Details:

  • Type: object
  • Required Fields: name, description, status
  • Additional Properties: false (strict validation)
  • Content-Type: application/json
  • Request Body: required

Usage:

import { schemas } from '@nodeblocks/backend-sdk';

const { createCategorySchema } = schemas;

const categorySchema = createCategorySchema({});
const validate = ajv.compile(categorySchema.schemas as SchemaDefinition);
const isValid = validate({
name: 'Electronics',
description: 'Electronic devices and accessories',
status: 'active'
});

updateCategorySchema​

Category update schema with optional fields for category modifications.

Purpose: Validates partial category data updates

Schema Details:

  • Type: object
  • Required Fields: None
  • Additional Properties: false (strict validation)
  • Content-Type: application/json
  • Parameters: categoryId (path parameter)
  • Properties:
    • name?: string - Updated category name
    • description?: string - Updated category description
    • parent?: string - Updated parent category ID

Usage:

import { schemas } from '@nodeblocks/backend-sdk';

const { updateCategorySchema } = schemas;

const categorySchema = updateCategorySchema({});
const validate = ajv.compile(categorySchema.schemas as SchemaDefinition);
const isValid = validate({ description: 'Updated description' });

getCategorySchema​

Category retrieval schema for getting single categories.

Purpose: Validates requests for retrieving specific categories

Schema Details:

  • Parameters: categoryId (path parameter)
  • Purpose: Validates requests for retrieving specific categories

Usage:

import { schemas } from '@nodeblocks/backend-sdk';

const { getCategorySchema } = schemas;

const categorySchema = getCategorySchema({});
const validate = ajv.compile(categorySchema.schemas as SchemaDefinition);
const isValid = validate({
categoryId: 'cat123'
});

deleteCategorySchema​

Category deletion schema for removing categories.

Purpose: Validates requests for deleting specific categories

Schema Details:

  • Parameters: categoryId (path parameter)
  • Purpose: Validates requests for deleting specific categories

Usage:

import { schemas } from '@nodeblocks/backend-sdk';

const { deleteCategorySchema } = schemas;

const categorySchema = deleteCategorySchema({});
const validate = ajv.compile(categorySchema.schemas as SchemaDefinition);
const isValid = validate({
categoryId: 'cat123'
});

enableCategorySchema​

Category enable schema for activating categories.

Purpose: Validates requests for enabling specific categories

Schema Details:

  • Parameters: categoryId (path parameter)
  • Purpose: Validates requests for enabling specific categories

Usage:

import { schemas } from '@nodeblocks/backend-sdk';

const { enableCategorySchema } = schemas;

const categorySchema = enableCategorySchema({});
const validate = ajv.compile(categorySchema.schemas as SchemaDefinition);
const isValid = validate({
categoryId: 'cat123'
});

disableCategorySchema​

Category disable schema for deactivating categories.

Purpose: Validates requests for disabling specific categories

Schema Details:

  • Parameters: categoryId (path parameter)
  • Purpose: Validates requests for disabling specific categories

Usage:

import { schemas } from '@nodeblocks/backend-sdk';

const { disableCategorySchema } = schemas;

const categorySchema = disableCategorySchema({});
const validate = ajv.compile(categorySchema.schemas as SchemaDefinition);
const isValid = validate({
categoryId: 'cat123'
});

findCategoriesSchema​

Categories search schema for finding categories with filtering and pagination.

Purpose: Validates requests for searching and paginating categories

Schema Details:

  • Query Parameters:
    • description?: string (optional filter by description)
    • name?: string (optional filter by name)
    • parent?: string (optional filter by parent category)
    • status?: string (optional filter by status)
    • page?: number (pagination)
    • limit?: number (pagination)
  • Purpose: Validates requests for searching and paginating categories

Usage:

import { schemas } from '@nodeblocks/backend-sdk';

const { findCategoriesSchema } = schemas;

const categoriesSchema = findCategoriesSchema({});
const validate = ajv.compile(categoriesSchema.schemas as SchemaDefinition);
const isValid = validate({
name: 'Electronics',
status: 'active',
page: 1,
limit: 10
});