27 lines
		
	
	
		
			705 B
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			705 B
		
	
	
	
		
			Go
		
	
	
	
package server
 | 
						|
 | 
						|
import (
 | 
						|
	"net/http"
 | 
						|
	"strings"
 | 
						|
)
 | 
						|
 | 
						|
// ParseURLComponents parses the components of an URL creating an array
 | 
						|
func ParseURLComponents(r *http.Request) []string {
 | 
						|
	//The URL that the user queried.
 | 
						|
	path := r.URL.Path
 | 
						|
	path = strings.TrimSpace(path)
 | 
						|
	//Cut off the leading and trailing forward slashes, if they exist.
 | 
						|
	//This cuts off the leading forward slash.
 | 
						|
	if strings.HasPrefix(path, "/") {
 | 
						|
		path = path[1:]
 | 
						|
	}
 | 
						|
	//This cuts off the trailing forward slash.
 | 
						|
	if strings.HasSuffix(path, "/") {
 | 
						|
		cutOffLastCharLen := len(path) - 1
 | 
						|
		path = path[:cutOffLastCharLen]
 | 
						|
	}
 | 
						|
	//We need to isolate the individual components of the path.
 | 
						|
	components := strings.Split(path, "/")
 | 
						|
	return components
 | 
						|
}
 |