본문 바로가기
IT 초보코딩의 세계/Go 언어

Go 언어 Back End 제작해보기(미들웨어) 3장

by 조이럭키7 2023. 5. 23.
반응형

API 미들웨어

클라이언트의 요청을 처리하기 전 후에 호출되서 작업을 수행하는 코드

Gin 웹 서버에서는 2개의 미들웨어를 제공: https://github.com/gin-gonic/contrib

    ● Logger 미들웨어: 로그를 기록하기 위한 미들웨어

    ● Recovery 미들웨어: 500번 에러가 발생하면 HTTP 에러 코드로 응답하는 미들웨어

 

커스텀 미들웨어

    ●호출될 함수 생성

func MyCustomMiddleware() gin.HandlerFunc {
  return func(c *gin.Context) {
  // 요청을 처리하기 전에 실행할 코드
  // 예제 변수 설정
  c.Set("v", "123")
  // c.Get(V)를 호출하면 변수 값을 확인할 수 있다.
  // 요청 처리 로직 실행
  c.Next()
  // 이 코드는 핸들러 실행이 끝나면 실행된다.
  // 응답 코드 확인
  status := c.Writer.Status() // status를 활용하는 코드 추가
  }
}

    ● 호출될 함수 설정

// gin 기본 엔진
r := gin.Default()
r.Use(MyCustomLogger())

rest.go 파일 수정

import (
  "fmt"
  "github.com/gin-gonic/gin"
)

func MyCustomLogger() gin.HandlerFunc {
  return func(c *gin.Context) {
  fmt.Println("*******************************")
  c.Next()
  fmt.Println("*******************************")
  } 
}

func RunAPI(address string) error {
  //Get gin's default engine
  r := gin.Default()
  r.Use(MyCustomLogger())
  //Define a handler
  h, _ := NewHandler()

 

반응형

댓글