A server chooses handler logic by matching the request path.

Route Matching

route_matching.go
package main

import "fmt"

type request struct {
	Path string
}

func handlerName(path string) string {
	if path == "/health" {
		return "healthHandler"
	}
	if path == "/users" {
		return "usersHandler"
	}
	return "notFoundHandler"
}

func main() {
	var path = 
	req := request{Path: path}
	handler := handlerName(req.Path)

	fmt.Println("path=", req.Path)
	fmt.Println("handler=", handler)
	fmt.Println("matched=", handler != "notFoundHandler")
}
package main

import "fmt"

type request struct {
	Path string
}

func handlerName(path string) string {
	if path == "/health" {
		return "healthHandler"
	}
	if path == "/users" {
		return "usersHandler"
	}
	return "notFoundHandler"
}

func main() {
	var path = 
	req := request{Path: path}
	handler := handlerName(req.Path)

	fmt.Println("path=", req.Path)
	fmt.Println("handler=", handler)
	fmt.Println("matched=", handler != "notFoundHandler")
}
package main

import "fmt"

type request struct {
	Path string
}

func handlerName(path string) string {
	if path == "/health" {
		return "healthHandler"
	}
	if path == "/users" {
		return "usersHandler"
	}
	return "notFoundHandler"
}

func main() {
	var path = 
	req := request{Path: path}
	handler := handlerName(req.Path)

	fmt.Println("path=", req.Path)
	fmt.Println("handler=", handler)
	fmt.Println("matched=", handler != "notFoundHandler")
}
route A route maps a request path to the code that should build the response.