Skip to content

Add Header Argument Resolver #3

@Scanf-s

Description

@Scanf-s

Problem
안녕하세요, SPINE 프레임워크에 흥미가 생겨 조사를 해보다가, 백엔드 어플리케이션 구현 시 유용하게 사용할 수 있을 기능을 제안드리고자 합니다.

현재 SPINE 프레임워크의 컨트롤러에는 Header를 받아서 확인해볼 수 있는 로직이 존재하지 않는것 같습니다.

예를 들어, Header의 Authorization내에 존재하는 토큰을 추출하여 검증하는 로직이 필요한 경우, 개발자가 HTTP 헤더를 추출하여 확인하는 로직을 직접 구현해야 하는 불편함이 있습니다.


Proposal
ArgumentResolver 인터페이스를 구현한 HeaderResolver를 추가해서, 컨트롤러 메서드 인자로 header.Values 타입을 직접 주입해서 사용할 수 있도록 구현하고자 합니다. 이미 구현은 다 마친 상태이므로, approve만 해주신다면 바로 PR 생성하도록 하겠습니다 🙂

func (c *UserController) GetUser(userId path.Int, headers header.Values) (User, error) {
	if token := headers.Get("Authorization"); token == "" {
		return User{}, httperr.Unauthorized("인증 토큰이 필요합니다.")
	}
	fmt.Printf("[TEMP] Passed Headers: %+v\n", headers)
	return User{}, httperr.NotFound("사용자를 찾을 수 없습니다.")
}

Image Image

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions