From ebab1b691ec23b2273d4b82efdd4a616c19a72fd Mon Sep 17 00:00:00 2001 From: Levi Olson Date: Wed, 9 May 2018 15:05:07 -0500 Subject: [PATCH] Updates to basic http routing in golang example --- posts/basic-http-routing-in-golang.md | 39 ++++++++++++++++++++++++++ posts/step2-browser-output.png | Bin 0 -> 7270 bytes 2 files changed, 39 insertions(+) create mode 100644 posts/step2-browser-output.png diff --git a/posts/basic-http-routing-in-golang.md b/posts/basic-http-routing-in-golang.md index 65298dd..172576d 100644 --- a/posts/basic-http-routing-in-golang.md +++ b/posts/basic-http-routing-in-golang.md @@ -12,6 +12,8 @@ I assume you have basic knowledge of the Go language at this point, so if not, i ## Let's begin +### Step 1 + Here is our basic folder structure for this basic http routing example: basic-http-routing-in-golang/ @@ -30,3 +32,40 @@ As a starting point our `main.go` file looks like this: fmt.Println("Hello HTTP") } +### Step 2 + +Now starting at a very basic level, we can leverage the [`http.HandleFunc`](https://golang.org/pkg/net/http/#HandleFunc) method. + +It is very simple to use and its signature is easy to understand. + + func HandleFunc(pattern string, handler func(ResponseWriter, *Request)) + +Which basically means, `http.HandleFunc("/url", routingFunction)` where `routingFunction` looks like this: + + func routingFunction(w http.ResponseWriter, req *http.Request) { + fmt.Fprint(w, "Hello HTTP") + } + +With `fmt.Fprint()` we can pass an `http.ResponseWriter` and a message to display. Our browser will now look like this when we visit the `/url` endpoint. + +![](step2-browser-output.png) + +Here is what `main.go` looks like at this point: + + package main + + import ( + "fmt" + "log" + "net/http" + ) + + func main() { + http.HandleFunc("/hello", HelloHTTP) + log.Fatal(http.ListenAndServe(":8080", nil)) + } + + func HelloHTTP(w http.ResponseWriter, req *http.Request) { + fmt.Fprint(w, "Hello HTTP") + } + diff --git a/posts/step2-browser-output.png b/posts/step2-browser-output.png new file mode 100644 index 0000000000000000000000000000000000000000..20de4fc1d1bf98765567076cc2c2e59cfb639304 GIT binary patch literal 7270 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 literal 0 HcmV?d00001