Data Access API Reference

This section details the APIs available for interacting with various data sources, enabling your applications to efficiently store, retrieve, and manage data.

Overview

The Data Access API provides a unified interface to connect to and manipulate data from different backend systems, including databases, cloud storage, and local file systems. Key features include:

Core Data Access Classes

DataAccessManager

The central class for managing all data operations. It acts as a factory for creating data providers and managing connections.

Usage:


const manager = new MSDN.DataAccess.DataAccessManager();
const dbProvider = manager.getProvider('database');
dbProvider.connect({ host: 'localhost', port: 5432, user: 'admin' });
            

DataProvider

An abstract base class for all data providers. Specific implementations include DatabaseProvider, FileStorageProvider, etc.

DatabaseProvider

Provides methods for interacting with relational and NoSQL databases.

Methods:

Method Description Parameters
query(sql: string, params?: object): Promise<any[]> Executes a SQL query and returns results.
  • sql: The SQL query string.
  • params (optional): An object containing named parameters for the query.
insert(data: object, table: string): Promise<number> Inserts a new record into a specified table.
  • data: An object representing the data to insert.
  • table: The name of the table.
update(criteria: object, data: object, table: string): Promise<number> Updates records based on criteria.
  • criteria: An object defining the update conditions.
  • data: An object containing the fields to update.
  • table: The name of the table.
remove(criteria: object, table: string): Promise<number> Deletes records based on criteria.
  • criteria: An object defining the deletion conditions.
  • table: The name of the table.

Example: Fetching User Data


async function fetchUsers() {
    const manager = new MSDN.DataAccess.DataAccessManager();
    const dbProvider = manager.getProvider('database'); // Assumes 'database' is configured

    try {
        await dbProvider.connect({ type: 'postgres', connectionString: '...' });
        const users = await dbProvider.query('SELECT id, name, email FROM users WHERE isActive = $1', [true]);
        console.log('Users:', users);
    } catch (error) {
        console.error('Failed to fetch users:', error);
    } finally {
        dbProvider.disconnect();
    }
}
            

Data Serialization

The Data Access API includes built-in support for common serialization formats like JSON and Protobuf.


import { serialize, deserialize } from 'MSDN.Serialization';

const rawData = { id: 1, name: 'Example', value: 123.45 };
const jsonString = serialize(rawData, 'json');
console.log(jsonString);

const parsedData = deserialize(jsonString, 'json');
console.log(parsedData);
            

Error Handling

All asynchronous data operations return Promises that will reject upon failure. Specific error types are provided for detailed error analysis: