API Design

📖 1 min read 📄 Part 5 of 10

Database Batch Auditing Service - API Design

Query API

Get Audit Trail

GET /api/v1/audit?database=prod_db&table=users&start=2024-01-01&end=2024-01-03

Response 200:
{
  "records": [
    {
      "audit_id": "550e8400-e29b-41d4-a716-446655440000",
      "timestamp": "2024-01-03T19:30:00Z",
      "operation": "UPDATE",
      "table": "users",
      "primary_key": "user_123",
      "changes": {
        "email": {
          "before": "old@example.com",
          "after": "new@example.com"
        }
      },
      "user": "admin@company.com"
    }
  ],
  "total": 1250,
  "page": 1
}

Generate Compliance Report

POST /api/v1/reports/compliance
Content-Type: application/json

{
  "compliance_type": "GDPR",
  "start_date": "2024-01-01",
  "end_date": "2024-01-31",
  "databases": ["prod_db"]
}

Response 202:
{
  "report_id": "report_abc123",
  "status": "processing",
  "estimated_completion": "2024-01-03T19:35:00Z"
}

Search Changes

POST /api/v1/audit/search
Content-Type: application/json

{
  "database": "prod_db",
  "table": "users",
  "user": "admin@company.com",
  "operation": "DELETE",
  "start_date": "2024-01-01",
  "end_date": "2024-01-31"
}

Client Library (Python)

from audit_client import AuditClient

client = AuditClient(endpoint='https://audit.example.com')

# Query audit trail
changes = client.get_audit_trail(
    database='prod_db',
    table='users',
    start_date='2024-01-01',
    end_date='2024-01-31'
)

# Generate compliance report
report = client.generate_compliance_report(
    compliance_type='GDPR',
    start_date='2024-01-01',
    end_date='2024-01-31'
)

This API provides comprehensive audit querying and reporting capabilities.