Web Handler

go 2022. 4. 14. 13:41

출처 : https://www.youtube.com/watch?v=4Oml8mbBXgo&ab_channel=TuckerProgramming 

https://github.com/tuckersGo/goWeb/blob/master/web1/main.go

위 코드로 공부겸 샘플 예제 실습

 

package main

import (
"fmt"
"net/http"
)

type fooHandler struct{}

func (f *fooHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "Hello Foo!")
}

func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "Hello World")
})

http.HandleFunc("/bar", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello Bar!")
})

http.Handle("/foo", &fooHandler{})

http.ListenAndServe(":3000", nil)
}

 

인덱스 경로 

http://192.168.0.6:3000/

/bar 경로 

http://192.168.0.6:3000/bar

/foo 경로 fooHandler인스턴스 메서드 실행 

http://192.168.0.6:3000/foo

 

'go' 카테고리의 다른 글

cryptopunks raritysniper json 파싱  (0) 2022.04.15
JSON Transfer  (0) 2022.04.14
go언어 설치  (0) 2022.04.14
routing module  (0) 2022.04.14
golang 개발환경 구축  (0) 2021.06.21
블로그 이미지

iesay

,

go언어 설치

go 2022. 4. 14. 13:34

https://go.dev/doc/install

 

go언어 다운로드

#wget https://go.dev/dl/go1.18.1.linux-amd64.tar.gz

기존 설치된 go 삭제 압축 품

#rm -rf /usr/local/go && tar -C /usr/local -xzf go1.18.1.linux-amd64.tar.gz

환경변수 등록

#vi /etc/profile

export PATH=$PATH:/usr/local/go/bin

#reboot

#go version 

 

'go' 카테고리의 다른 글

cryptopunks raritysniper json 파싱  (0) 2022.04.15
JSON Transfer  (0) 2022.04.14
Web Handler  (0) 2022.04.14
routing module  (0) 2022.04.14
golang 개발환경 구축  (0) 2021.06.21
블로그 이미지

iesay

,

routing module

go 2022. 4. 14. 10:46

출처 : https://spectrumdig.blogspot.com/2012/02/routing-module-handler.html?m=0 

 

package main

import (
  "fmt"
)

type Handler func(method string)

type Route struct {
  Method,Pattern string
}

type Routes struct {
  Routes []Route
}
func (r Routes) routeCount() int {
  return len(r.Routes)
}
func (r *Routes) addRoute(method, pattern string, handler Handler) {
  r.Routes=append(r.Routes, Route{Method:method, Pattern:pattern})
  fmt.Printf("route Count : %d\n", len(r.Routes))
  handler(method)
}
func (r *Routes) GET(pattern string, handler Handler) {
  r.addRoute("GET", pattern, handler)
}
func (r *Routes) POST(pattern string, handler Handler) {
  r.addRoute("POST", pattern, handler)
}
func (r *Routes) PUT(pattern string, handler Handler) {
  r.addRoute("PUT", pattern, handler)
}
func (r *Routes) DELETE(pattern string, handler Handler) {
  r.addRoute("DELETE", pattern, handler)
}
func handler(method string) {
  fmt.Printf("%s handler executed \n", method)
}

func main() {
  r:=new(Routes)
  r.GET("/user/:user", handler)
  r.PUT("/add/:user", handler)
  r.POST("/update/:user", handler)
  r.DELETE("/delete/:user", handler)
  for _,v:=range r.Routes {
    fmt.Printf("%s:%s\n",v.Method, v.Pattern)
  }
}

 

 

'go' 카테고리의 다른 글

cryptopunks raritysniper json 파싱  (0) 2022.04.15
JSON Transfer  (0) 2022.04.14
Web Handler  (0) 2022.04.14
go언어 설치  (0) 2022.04.14
golang 개발환경 구축  (0) 2021.06.21
블로그 이미지

iesay

,