HTTP Client
Use the pre-configured HTTP client for F5 Distributed Cloud API calls.
Basic Usage
Section titled “Basic Usage”import { CredentialManager, createHttpClient } from '@robinmordasiewicz/f5xc-auth';
const credentialManager = new CredentialManager();await credentialManager.initialize();
const httpClient = createHttpClient(credentialManager);
if (httpClient.isAvailable()) { // GET request const response = await httpClient.get('/web/namespaces'); console.log('Namespaces:', response.data);}Advanced Configuration
Section titled “Advanced Configuration”const httpClient = createHttpClient(credentialManager, { timeout: 30000, // Request timeout in milliseconds debug: true, // Enable request/response logging maxRetries: 3, // Number of retry attempts (default: 3) retryDelay: 1000, // Delay between retries in ms (default: 1000) validateStatus: (status) => status < 500 // Custom status validation});CRUD Operations
Section titled “CRUD Operations”// POST - Create resourceconst createResponse = await httpClient.post('/api/config/namespaces/my-ns/http_loadbalancers', { metadata: { name: 'my-lb', namespace: 'my-ns' }, spec: { domains: ['example.com'], http: { port: 80 } }});
// PUT - Update resourceconst updateResponse = await httpClient.put('/api/config/namespaces/my-ns/http_loadbalancers/my-lb', { metadata: { name: 'my-lb', namespace: 'my-ns' }, spec: { domains: ['example.com', 'www.example.com'], http: { port: 80 } }});
// DELETE - Remove resourceawait httpClient.delete('/api/config/namespaces/my-ns/http_loadbalancers/my-lb');console.log('Load balancer deleted');Error Handling
Section titled “Error Handling”import { createHttpClient } from '@robinmordasiewicz/f5xc-auth';
async function safeApiCall() { const httpClient = createHttpClient(credentialManager);
if (!httpClient.isAvailable()) { console.error('HTTP client not available - check credentials'); return; }
try { const response = await httpClient.get('/web/namespaces'); console.log('Success:', response.data); } catch (error) { if (error.response) { // Server responded with error status console.error('Server error:', error.response.status); console.error('Message:', error.response.data); } else if (error.request) { // Request made but no response console.error('Network error - no response received'); } else { // Error setting up request console.error('Request error:', error.message); } }}Custom Headers
Section titled “Custom Headers”// Add custom headers for specific requestconst response = await httpClient.get('/web/namespaces', { headers: { 'X-Request-ID': 'unique-request-id', 'X-Custom-Header': 'custom-value' }});
// Add custom headers to all requestshttpClient.defaults.headers.common['X-Global-Header'] = 'global-value';See Also
Section titled “See Also”- Quick Start - Basic authentication and API calls
- HTTP Client API - Complete API reference
- Examples - Real-world usage examples