Ruby SDK
The Spartera Ruby SDK provides native Ruby methods to interact with the
Spartera REST API for asset management, analytics, and billing operations.
Installation
Add to your Gemfile:
gem 'spartera-api-sdk'
Then run:
bundle install
Or install directly:
gem install spartera-api-sdk
Requirements
- Ruby 2.7 or higher
- Bundler for dependency management
Features
The Ruby SDK includes:
- Native Ruby methods for all API endpoints
- Automated asset management capabilities
- Analytics and billing operations
- Connection management for data platforms
- Marketplace publishing tools
- Environment variable configuration
- Error handling with Ruby exceptions
Configuration
Configure the client with your API credentials:
require 'spartera_api_sdk'
## Using environment variables
client = Spartera::Client.new
## Direct configuration
client = Spartera::Client.new(
api_key: 'your-api-key',
endpoint: 'https://api.spartera.com'
)
Quick Start
require 'spartera_api_sdk'
client = Spartera::Client.new(api_key: ENV['SPARTERA_API_KEY'])
## Create data connection
connection = client.connections.create(
name: 'Production Warehouse',
type: 'redshift',
credentials: {
host: 'your-cluster.redshift.amazonaws.com',
database: 'analytics',
username: 'your-username',
password: 'your-password'
}
)
## Create asset
asset = client.assets.create(
name: 'User Engagement Metrics',
type: 'sql',
query: 'SELECT user_id, sessions FROM user_analytics',
connection_id: connection.id
)
## Set pricing and publish
client.assets.set_pricing(asset.id,
strategy: 'per_usage',
price: 1.25
)
client.marketplace.publish(asset.id)
Data Connections
Manage various data platform connections:
## BigQuery connection
bigquery_conn = client.connections.create(
name: 'BigQuery Analytics',
type: 'bigquery',
credentials: {
project_id: 'your-gcp-project',
credentials_json: File.read('service-account.json')
}
)
## Snowflake connection
snowflake_conn = client.connections.create(
name: 'Snowflake DW',
type: 'snowflake',
credentials: {
account: 'your-account.snowflakecomputing.com',
username: 'analytics_user',
password: 'secure_password',
warehouse: 'COMPUTE_WH'
}
)
Asset Management
## List all assets
assets = client.assets.list(page: 1, per_page: 50)
## Get specific asset
asset = client.assets.find('asset-id')
## Update asset
client.assets.update('asset-id',
name: 'Updated Asset Name',
description: 'New description'
)
## Delete asset
client.assets.delete('asset-id')
Analytics and Monitoring
## Get usage analytics
usage_data = client.analytics.usage('asset-id',
start_date: Date.parse('2024-01-01'),
end_date: Date.parse('2024-01-31')
)
## Performance metrics
performance = client.analytics.performance('asset-id')
## Revenue tracking
revenue = client.billing.revenue_report(
start_date: '2024-01-01',
end_date: '2024-01-31'
)
Error Handling
begin
asset = client.assets.find('invalid-id')
rescue Spartera::NotFoundError => e
puts "Asset not found: #{e.message}"
rescue Spartera::APIError => e
puts "API Error: #{e.status_code} - #{e.message}"
rescue => e
puts "Unexpected error: #{e.message}"
end
Rails Integration
For Rails applications, configure in an initializer:
## config/initializers/spartera.rb
Spartera.configure do |config|
config.api_key = Rails.application.credentials.spartera_api_key
config.endpoint = 'https://api.spartera.com'
config.timeout = 30
end
Batch Operations
## Bulk asset creation
assets_data = [
{ name: 'Asset 1', type: 'sql', query: 'SELECT * FROM table1' },
{ name: 'Asset 2', type: 'sql', query: 'SELECT * FROM table2' }
]
results = client.assets.bulk_create(assets_data)
