// Swagger UI server URL auto-detection // Automatically sets the server URL to match the current instance (function() { window.addEventListener('load', function() { // Wait for Swagger UI to initialize setTimeout(function() { try { // Detect current URL from browser const protocol = window.location.protocol; const host = window.location.host; const detectedUrl = `${protocol}//${host}`; // Get Swagger UI instance const ui = window.ui; if (!ui) { console.warn('Swagger UI not found, cannot set server URL'); return; } // Get the spec servers const spec = ui.specSelectors.specJson(); const servers = spec.getIn(['servers']); if (!servers || servers.size === 0) { console.warn('No servers defined in OpenAPI spec'); return; } // Update the first server with the detected URL const updatedServers = servers.setIn([0, 'url'], detectedUrl); // Apply the updated servers to the spec const updatedSpec = spec.set('servers', updatedServers); ui.specActions.updateSpec(updatedSpec.toJS()); // Also set the selected server in Swagger UI state ui.specActions.setSelectedServer(updatedServers.get(0).get('url')); console.log('Swagger UI server URL set to:', detectedUrl); } catch (error) { console.error('Failed to auto-detect Swagger UI server URL:', error); } }, 100); // Small delay to ensure Swagger UI is initialized }); })();