본문 바로가기
개발/개발공부

Golang Gin Router / golang, go, 고랭, 고, 언어, 라우터

by 치킨개발자 2023. 2. 4.
728x90

Golang Gin Router


저번에 이어서 기본적으로 web server를 배울 때 Router가 기본이라고 생각이 들어서, Router에 대해 찾아봤다.

Vue / React를 할때도 Router를 기본으로 셋업하긴 했다.

저번에 이어서 바로 Router를 적용하면

package main

import (
	"github.com/gin-gonic/gin"
	"net/http"
)

func setupRouter() *gin.Engine {
	r := gin.Default()

	v1 := r.Group("/api/v1")
	{
		v1.GET("/ping", func(c *gin.Context) {
			c.JSON(200, gin.H{
				"message": "pong",
			})
		})

		v1.GET("/hello/:name", func(c *gin.Context) {
			name := c.Param("name")
			c.String(http.StatusOK, "Hello %s", name)
		})
	}

	return r
}

func main() {
	r := setupRouter()
	r.Run(":8080")
}

go run main.go로 실행하면 된다.

말 그대로 Router group을 사용하여 좀 더 세분화 해봤다.

/api/v1으로 Router를 group하고, 하위로 /ping, /hello/:name의 주소가 존재한다.

즉 /api/v1/ping과 api/v1/hello/:name 2개의 Router를 생성한 것

 

ping - pong도 JSON을 return하는 예시로 바꿔봤고,

hello는 name을 받아서 param을 그대로 리턴해주는 예시이다.

추가로 http라이브러리를 통해 Status까지 같이 사용했다.

 

localhost:8080/api/v1/ping 로 페이지를 켜보면

golang gin-router ping-pong

이런식으로 JSON으로 메세지가 반환이 된다.

 

localhost:8080/api/v1/hello/dev-chicken으로 접속하면

요로코롬 뒤에 dev-chicken을 파라미터로 받아서 그대로 보여준다.

 

반응형

댓글