Chapter 5: Instantiation and Global Configuration
9/1/25Less than 1 minute
Chapter 5: Instantiation and Global Configuration
Learning Objectives
- Understand the concept of Axios instances
- Master creating and configuring Axios instances
- Learn to set global default configurations
- Understand the configuration priority mechanism
- Implement multi-environment configuration management
5.1 Axios Instantiation
Creating an Instance
// Create an axios instance
const apiClient = axios.create({
baseURL: 'https://api.example.com/v1',
timeout: 10000,
headers: {
'Content-Type': 'application/json'
}
});
// Instances for different services
const userAPI = axios.create({
baseURL: 'https://user-service.com/api'
});
const paymentAPI = axios.create({
baseURL: 'https://payment-service.com/api',
timeout: 30000
});
5.2 Global Configuration
Default Configuration
// Global default configuration
axios.defaults.baseURL = 'https://api.example.com';
axios.defaults.timeout = 10000;
axios.defaults.headers.common['Authorization'] = 'Bearer token';
axios.defaults.headers.post['Content-Type'] = 'application/json';
5.3 Configuration Priority
Configuration priority from highest to lowest:
- Request configuration
- Instance configuration
- Global configuration
// Demonstrating configuration priority
axios.defaults.timeout = 10000; // Global configuration
const instance = axios.create({
timeout: 5000 // Instance configuration, overrides global
});
instance.get('/api/data', {
timeout: 3000 // Request configuration, highest priority
});
5.4 Multi-Environment Configuration
// Environment configuration management
class EnvironmentConfig {
constructor() {
this.configs = {
development: {
baseURL: 'http://localhost:3000/api',
timeout: 10000
},
testing: {
baseURL: 'https://test-api.example.com',
timeout: 15000
},
production: {
baseURL: 'https://api.example.com',
timeout: 5000
}
};
}
getConfig(env = 'development') {
return this.configs[env] || this.configs.development;
}
createInstance(env) {
const config = this.getConfig(env);
return axios.create(config);
}
}
const envConfig = new EnvironmentConfig();
const apiClient = envConfig.createInstance(process.env.NODE_ENV);
Chapter Summary
- Instantiation provides isolation and reusability
- Global configuration affects all requests
- Configuration priority ensures flexibility
- Multi-environment configuration supports different deployment environments
Key Takeaways
- Use different instances for different services
- Set reasonable global default values
- Understand configuration priority to avoid conflicts
- Environment configuration improves maintainability