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:
- Abstracted database interactions (SQL, NoSQL).
- Asynchronous operations for non-blocking data retrieval.
- Data serialization and deserialization utilities.
- Connection pooling and management.
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. |
|
insert(data: object, table: string): Promise<number> |
Inserts a new record into a specified table. |
|
update(criteria: object, data: object, table: string): Promise<number> |
Updates records based on criteria. |
|
remove(criteria: object, table: string): Promise<number> |
Deletes records based on criteria. |
|
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:
MSDN.DataAccess.ConnectionError
: For issues related to establishing a connection.MSDN.DataAccess.QueryError
: For errors occurring during query execution.MSDN.DataAccess.NotFoundError
: When a requested resource or record is not found.