Spaces:
Running
Running
| // API Configuration | |
| // Configure the base URL for backend API | |
| // If frontend and backend are deployed under the same domain, can be set to empty string or relative path | |
| // If frontend and backend are deployed separately, need to set to full backend URL, e.g.: 'https://api.example.com' | |
| const API_CONFIG = { | |
| // Backend API base URL | |
| baseURL: window.location.origin, // Default to current domain | |
| // WebSocket connection URL | |
| wsURL: (() => { | |
| const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:'; | |
| return `${protocol}//${window.location.host}`; | |
| })(), | |
| // API endpoints | |
| endpoints: { | |
| search: '/api/search', | |
| feedback: '/api/feedback', | |
| trending: '/api/trending', | |
| feed: '/api/feed', | |
| item: '/api/item', | |
| upload: { | |
| url: '/api/upload/url', | |
| text: '/api/upload/text', | |
| image: '/api/upload/image' | |
| }, | |
| admin: { | |
| browse: '/api/admin/browse', | |
| promote: '/api/admin/promote', | |
| delete: '/api/admin/delete', | |
| backfill: '/api/admin/backfill' | |
| } | |
| }, | |
| // Get full API URL | |
| getURL: function(endpoint) { | |
| if (endpoint.startsWith('http://') || endpoint.startsWith('https://')) { | |
| return endpoint; | |
| } | |
| return `${this.baseURL}${endpoint}`; | |
| }, | |
| // Get WebSocket URL | |
| getWebSocketURL: function(path = '/ws') { | |
| return `${this.wsURL}${path}`; | |
| } | |
| }; | |
| // If you need to use different configurations for different environments, set it like this: | |
| // if (window.location.hostname === 'localhost') { | |
| // API_CONFIG.baseURL = 'http://localhost:8000'; | |
| // API_CONFIG.wsURL = 'ws://localhost:8000'; | |
| // } else { | |
| // API_CONFIG.baseURL = 'https://api.production.com'; | |
| // API_CONFIG.wsURL = 'wss://api.production.com'; | |
| // } | |