HandleHTTP handle all routes, used for proxying them to controller 
 | 
	func  ( s  * Server )  HandleHTTP ( w  http . ResponseWriter ,  req  * http . Request )  { 
	log . Println ( "Proxying to" ,  s . Proxy ) 
	tempURL ,  _  :=  url . Parse ( s . Proxy ) 
	req . URL . Host  =  tempURL . Host 
	req . URL . Scheme  =  tempURL . Scheme 
	req . URL . Path  =  strings . Replace ( req . URL . Path ,  APIPrefix ,  s . ProxyPrefix ,  1 ) 
	req . Host  =  tempURL . Host 
	resp ,  err  :=  s . Transport . RoundTrip ( req ) 
	if  err  !=  nil  { 
		http . Error ( w ,  err . Error ( ) ,  http . StatusServiceUnavailable ) 
		return 
	} 
	defer  func ( )  { 
		err  :=  resp . Body . Close ( ) 
		if  err  !=  nil  { 
			log . Println ( "Unable to close response body" ) 
		} 
	} ( ) 
	copyHeader ( w . Header ( ) ,  resp . Header ) 
	w . WriteHeader ( resp . StatusCode ) 
	_ ,  err  =  io . Copy ( w ,  resp . Body ) 
	if  err  !=  nil  { 
		log . Println ( "Error copying response body" ) 
	} 
} 
func  copyHeader ( dst ,  src  http . Header )  { 
	for  k ,  vv  :=  range  src  { 
		for  _ ,  v  :=  range  vv  { 
			dst . Add ( k ,  v ) 
		} 
	} 
} 
  |