Skip to main content

API Reference Overview

Comprehensive reference for all MatsushibaDB APIs, including database operations, HTTP endpoints, and command-line tools.

Database API

Core Database Operations

// Database connection
const MatsushibaDB = require('matsushibadb');
const db = new MatsushibaDB('database.db');

// Basic operations
db.run(sql, params)           // Execute SQL statement
db.get(sql, params)           // Get single row
db.all(sql, params)           // Get all rows
db.each(sql, params, callback) // Iterate over rows

// Prepared statements
const stmt = db.prepare(sql);
stmt.run(params)              // Execute prepared statement
stmt.get(params)              // Get single row
stmt.all(params)              // Get all rows
stmt.finalize()               // Clean up statement

// Transactions
db.run('BEGIN TRANSACTION');
db.run('COMMIT');
db.run('ROLLBACK');

Connection Pooling

const { MatsushibaPool } = require('matsushibadb');

const pool = new MatsushibaPool({
    database: 'app.db',
    min: 5,
    max: 20,
    acquireTimeoutMillis: 30000
});

// Use pool
const connection = await pool.acquire();
try {
    const result = connection.all('SELECT * FROM users');
    return result;
} finally {
    pool.release(connection);
}

HTTP API

Authentication Endpoints

POST /api/auth/login
Content-Type: application/json

{
    "username": "[email protected]",
    "password": "password123"
}

Response:
{
    "success": true,
    "token": "jwt_token_here",
    "user": {
        "id": 1,
        "username": "[email protected]",
        "email": "[email protected]"
    }
}
POST /api/auth/register
Content-Type: application/json

{
    "username": "newuser",
    "email": "[email protected]",
    "password": "password123"
}

Response:
{
    "success": true,
    "userId": 123,
    "message": "User registered successfully"
}

User Management

GET /api/users
Authorization: Bearer jwt_token_here

Response:
{
    "users": [
        {
            "id": 1,
            "username": "john_doe",
            "email": "[email protected]",
            "status": "active",
            "createdAt": "2024-01-15T10:30:00Z"
        }
    ],
    "total": 1,
    "page": 1,
    "pageSize": 10
}
GET /api/users/:id
Authorization: Bearer jwt_token_here

Response:
{
    "id": 1,
    "username": "john_doe",
    "email": "[email protected]",
    "status": "active",
    "createdAt": "2024-01-15T10:30:00Z",
    "updatedAt": "2024-01-15T10:30:00Z"
}

Data Operations

POST /api/data/query
Authorization: Bearer jwt_token_here
Content-Type: application/json

{
    "sql": "SELECT * FROM users WHERE status = ?",
    "params": ["active"]
}

Response:
{
    "success": true,
    "data": [
        {
            "id": 1,
            "username": "john_doe",
            "email": "[email protected]",
            "status": "active"
        }
    ],
    "count": 1
}

CLI Commands

Database Management

# Initialize database
matsushiba init database.db

# Create table
matsushiba create-table users "id INTEGER PRIMARY KEY, name TEXT, email TEXT"

# Insert data
matsushiba insert users "name='John Doe', email='[email protected]'"

# Query data
matsushiba query "SELECT * FROM users"

# Update data
matsushiba update users "name='Jane Doe'" "WHERE id = 1"

# Delete data
matsushiba delete users "WHERE id = 1"

Database Operations

# Backup database
matsushiba backup database.db --output backup.db

# Restore database
matsushiba restore backup.db --output restored.db

# Analyze database
matsushiba analyze database.db

# Optimize database
matsushiba optimize database.db

# Check integrity
matsushiba integrity-check database.db

Performance Monitoring

# Performance analysis
matsushiba performance database.db

# Index analysis
matsushiba indexes database.db

# Query analysis
matsushiba explain "SELECT * FROM users WHERE status = 'active'"

# Statistics
matsushiba stats database.db

Error Codes

Database Errors

CodeDescriptionSolution
SQLITE_CONSTRAINTConstraint violationCheck data constraints
SQLITE_BUSYDatabase lockedRetry operation
SQLITE_FULLDatabase fullFree up space
SQLITE_CORRUPTDatabase corruptedRestore from backup

HTTP Errors

CodeDescriptionSolution
400Bad RequestCheck request format
401UnauthorizedProvide valid token
403ForbiddenCheck permissions
404Not FoundVerify resource exists
500Internal ErrorCheck server logs

Rate Limits

API Rate Limits

  • Authentication: 5 requests per minute
  • Data queries: 100 requests per minute
  • Bulk operations: 10 requests per minute
  • Admin operations: 20 requests per minute

Rate Limit Headers

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1640995200

Webhooks

Webhook Events

{
    "event": "user.created",
    "timestamp": "2024-01-15T10:30:00Z",
    "data": {
        "id": 123,
        "username": "newuser",
        "email": "[email protected]"
    }
}

Supported Events

  • user.created - New user registered
  • user.updated - User profile updated
  • user.deleted - User account deleted
  • data.inserted - New data inserted
  • data.updated - Data updated
  • data.deleted - Data deleted

SDKs

Node.js SDK

npm install matsushibadb
const MatsushibaDB = require('matsushibadb');
const db = new MatsushibaDB('database.db');

Python SDK

pip install matsushibadb
import matsushibadb
db = matsushibadb.MatsushibaDB('database.db')

Go SDK

go get github.com/matsushibadb/go-sdk
import "github.com/matsushibadb/go-sdk"

db, err := matsushibadb.Open("database.db")

Best Practices

1

Use Prepared Statements

Always use prepared statements for repeated queries to improve performance and security.
2

Handle Errors Properly

Implement proper error handling for all API operations.
3

Use Connection Pooling

Use connection pooling for production applications.
4

Implement Rate Limiting

Respect rate limits and implement client-side rate limiting.
5

Use HTTPS

Always use HTTPS in production for secure communication.
6

Monitor Performance

Monitor API performance and optimize based on usage patterns.
7

Version Your APIs

Use API versioning to maintain backward compatibility.
8

Document Your APIs

Keep API documentation up to date with changes.
This API reference provides comprehensive coverage of all MatsushibaDB interfaces. For specific implementation details, refer to the individual API documentation sections.