SDK Overview
Unizo provides official SDKs for popular programming languages to make integration with our APIs simple and efficient. Our SDKs handle authentication, rate limiting, error handling, and provide type-safe interfaces for all API endpoints.
Available SDKs
JavaScript/TypeScript
- Package:
@unizo/sdk
- Runtime: Node.js 16+ and modern browsers
- Features: Full TypeScript support, automatic retries, built-in rate limiting
View JavaScript SDK Documentation →
Python
- Package:
unizo-python
- Version: Python 3.8+
- Features: Async/await support, Pydantic models, comprehensive error handling
View Python SDK Documentation →
Java
- Package:
com.unizo:unizo-java
- Version: Java 11+
- Features: OkHttp client, Jackson serialization, Spring Boot integration
Ruby
- Package:
unizo-ruby
- Version: Ruby 2.7+
- Features: Faraday HTTP client, automatic pagination, Rails integration
PHP
- Package:
unizo/php-sdk
- Version: PHP 8.0+
- Features: PSR-7 compatible, Guzzle HTTP client, Laravel integration
Go
- Package:
github.com/unizo-ai/unizo-go
- Version: Go 1.19+
- Features: Context support, structured errors, concurrent safe
Quick Start
All SDKs follow similar patterns for initialization and usage:
Installation
# JavaScript/Node.js
npm install @unizo/sdk
# Python
pip install unizo-python
# Java (Maven)
<dependency>
<groupId>com.unizo</groupId>
<artifactId>unizo-java</artifactId>
<version>1.0.0</version>
</dependency>
# Ruby
gem install unizo-ruby
# PHP
composer require unizo/php-sdk
# Go
go get github.com/unizo-ai/unizo-go
Basic Usage
// JavaScript
import { Unizo } from '@unizo/sdk';
const client = new Unizo({
apiKey: process.env.UNIZO_API_KEY
});
const vulnerabilities = await client.security.vulnerabilities.list();
# Python
from unizo import Unizo
client = Unizo(api_key=os.environ['UNIZO_API_KEY'])
vulnerabilities = await client.security.vulnerabilities.list()
// Java
import com.unizo.UnizoClient;
UnizoClient client = UnizoClient.builder()
.apiKey(System.getenv("UNIZO_API_KEY"))
.build();
List<Vulnerability> vulnerabilities = client.security().vulnerabilities().list();
Common Features
All SDKs include these features:
Authentication
- API key authentication
- Automatic token refresh
- Support for multiple environments
Error Handling
- Structured error responses
- Automatic retry with exponential backoff
- Rate limit handling
Type Safety
- Full type definitions for all API endpoints
- IDE autocompletion and IntelliSense
- Compile-time error checking
Pagination
- Automatic pagination handling
- Iterator patterns for large datasets
- Configurable page sizes
Rate Limiting
- Built-in rate limit respect
- Automatic throttling
- Configurable retry policies
Configuration Options
All SDKs support comprehensive configuration:
const client = new Unizo({
apiKey: 'your-api-key',
baseUrl: 'https://api.unizo.ai/v1', // Custom base URL
timeout: 30000, // Request timeout in ms
retries: 3, // Number of retries
rateLimit: {
maxRequests: 60, // Requests per minute
perMinute: true
},
debug: false // Enable debug logging
});
Fetching Vulnerabilities
// Get all high-severity vulnerabilities
const vulnerabilities = await client.security.vulnerabilities.list({
severity: 'high',
status: 'open'
});
console.log(`Found ${vulnerabilities.length} high-severity vulnerabilities`);
vulnerabilities.forEach(vuln => {
console.log(`- ${vuln.title} (${vuln.id})`);
});
Managing Deployments
// Trigger a deployment
const deployment = await client.development.deployments.create({
environment: 'production',
version: 'v1.2.3',
repository: 'my-app'
});
// Monitor deployment status
const status = await client.development.deployments.get(deployment.id);
console.log(`Deployment status: ${status.state}`);
Sending Notifications
// Send a Slack notification
await client.communication.messages.send({
channel: '#alerts',
text: 'Deployment completed successfully!',
provider: 'slack'
});
Testing
All SDKs include testing utilities:
// JavaScript testing with Jest
import { createMockUnizo } from '@unizo/sdk/testing';
const mockClient = createMockUnizo();
mockClient.security.vulnerabilities.list.mockResolvedValue([
{ id: 'vuln_1', title: 'Test Vulnerability', severity: 'high' }
]);
Migration Guides
From REST API
If you're currently using the REST API directly, our SDKs provide a smoother experience:
// Before: Manual HTTP requests
const response = await fetch('https://api.unizo.ai/v1/security/vulnerabilities', {
headers: {
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json'
}
});
const vulnerabilities = await response.json();
// After: Using SDK
const vulnerabilities = await client.security.vulnerabilities.list();
Version Updates
We follow semantic versioning for all SDKs. Check our changelog for breaking changes and migration guides.
Contributing
All SDKs are open source and welcome contributions:
Next Steps
- Choose your preferred SDK and follow the detailed documentation
- Check out our API Reference for endpoint details
- Explore code examples in our repository