더북(TheBook)

라우터 타입 정의

먼저 router.go 파일을 생성하고 router 타입을 정의해 보자.

▼ router.go

type router struct {
    // 키: http 메서드
    // 값: URL 패턴별로 실행할 HandlerFunc
    handlers map[string]map[string]http.HandlerFunc
}

router 구조체 내부에 handlers 필드를 정의했다. handlers는 또 다른 맵을 값(value)으로 사용한 2차원 맵이다. URL 패턴별로 실행할 핸들러들을 http 메서드별로 정의했다.

routerhandlers 필드 내부의 값을 표현해 보면 표 8-1과 같다.

표 8-1 router의 handlers 필드 내부의 값 예시

GET

 

/

indexHandler

/about

aboutHandler

/users

retrieveUserCollection

/users/:id

retrieveUser

/users/:user_id/addresses

retrieveUserAddressCollection

/users/:user_id/addresses/:address_id

retrieveUserAddress

POST

 

/users

createUser

/users/:user_id/addresses

createUserAddress

PUT

 

/users/:id

updateUser

/users/:user_id/addresses/:address_id

updateUserAddress

DELETE

 

/users/:id

deleteUser

/users/:user_id/addresses/:address_id

deleteUserAddress

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.