스프링프레임워크를 사용해서 Restful API를 개발할때, RequestHeader 정보를 가져오는 방법이다.

요즈음에 대세가된 SpringBoot를 이용할 경우에 다른 설정은 크게 필요하지는 않다.

 

"@RestController"를 이용하여, 컨트롤러를 선언해주고, "@GetMapping" 어노테이션을 이용하여, "http://localhost:8080/headerinfo" 라고 호출하였을때, 실행되도로 정의했다. 이때 호출되는 RequestHeader값은 "@RequestHeader" 어노테이션을이용하여 "headers"라는 변수를 통해서 넘겨받을 수 있다.

package net.happyzoo.happzoo;

import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.http.HttpHeaders;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Mono;

import java.util.Map;

@SpringBootApplication
@Slf4j
public class HappzooApplication {

@RestController
public static class GetControllerPractice
{
@GetMapping("/headerinfo")
Mono<Map<String, String>> getHeaderInfo(@RequestHeader HttpHeaders headers)
{
log.info(headers.toSingleValueMap().toString());

return Mono.just(headers.toSingleValueMap());
}

}


public static void main(String[] args) {
SpringApplication.run(HappzooApplication.class, args);
}

}

위는 Sample 코드이며, Lombok을 이용하여 @Slf4j를 선언해주면, 로그를 남길수 있도록 했는데, Lombok를 사용하지않으면, 선언에서 제외하면 된다.


실행 결과는 다음과 같이 Map의 형태로 반환해서 Mono로 전달하면 Client에서 결과값을 받을수 있다.

return Mono.just(headers.toSingleValueMap());


Terminal에서는 

  curl -X GET http://localhost:8080/headerinfo

와 같이 명령을 실행해서 호출하거나, Chrome 브라우져에서 실행해보면 확인할 수 있다.

IntelliJ에 내장된 Rest Client를 이용해서 호출한 결과이다. Json의 Object형태로 결과를 받아왔다.





WRITTEN BY
행복상자
행복한 마음으로 매일을 살고 싶은 개발자 입니다.

트랙백  0 , 댓글  0개가 달렸습니다.
secret

나는 SF영화를 좋아한다. 

현실적이지 않기 때문에 상상력을 동원할수 있어서이기도 하고, 미래의 모습을 영화를 통해서 예측할 수 있어서 이기도 하다. 누군가의 상상을 또는 예측을 스크린을 통해서 이해할수 있어서 이기도 하다.

 

"트랜스포머"가 2007년도에 한국에 개봉을 하면서, 어렸을때 보았던 로봇 애니메이션과 만화속의 이미지를 그대로 스크린을 통해서 보게되었다. 이는 로봇영화에 대한 소년기 남자들 로망을 어른이 되어 있는 나에게 충족시켜 주었었다.

상상을 통해 그려보던 모습을 마치 살아 있는양 스크린 속의 변신 로봇의 모습은 거침없이 뛰어다녔었다. 


근래 10년동안에서 가끔씩 나오는 "트랜스포머" 시리즈는 처음의 감동은 아닐지라도, 향수와 추억을 머금고 있어서인지, 시리즈가 나올때마다 만나야 되는 영화가 되었다. 그러나, 새로운 이야기가 영화로 나올때마다, 스케일과 물량은 커졌지만, 이야기 측면에서는 커다란 감흥을 주지는 못해왔다. 상업적인 영화이기 때문이지만, 다음 영화에 대한 기대감이 점차 사라졌기 때문에 시리즈에 대한 위기감이 컸다.


지난주에 보았던 범블비는 이전에 보았던 트랜스포먼와는 다른 형식의 영화이다. 트랜스포머의 "프리퀄"이라고 이야기 하고 싶지는 않다. 이야기의 처음은 전쟁중에 지구로 오게된 "범블비"의 여정의 과정을 보여주지만, 트랜스포머의 기원과 오토봇과 디셉티콘의 전쟁에 대한 오랜 이야기의 시작을 말해주지는 않는다. 


80년대를 살아본 사람에게는 추억과 이야기 거리를 줄 수 있는 영화이다.




"범블비"는 한소녀와의 우연한 만남을 통해서 서로 자극 받고 성장하는 성장 드라마와 같았다. 

이전에는 동물 또는 다른 사람과의 만남을 통해서, 다른 사람 또는 매개체를 통해서 갈등과 트라우마를 극복하는 영화들이 많았기에, 이야기의 플롯은 너무나도 심플하기만 하다.


갈등의 관계도 가족간의 이해를 바탕으로 한꺼플씩 오해를 벗으면서, 어느덧 이야기는 마무리가 된다.

그리고, 새로운 이야기의 시작을 알리면서 영화는 종료된다.


선과 악의 관계도 명확하고, 아군과 적국의 관계도 명확하게 보여주어서, 이전의 "트랜스포머"의 복잡해지 상호관계를 단순하게 만들어 주었다. 이러한 단순한 관계는 "범블비"를 "트랜스포머" 시리즈중에도 역대급으로 만들어 주었다.






WRITTEN BY
행복상자
행복한 마음으로 매일을 살고 싶은 개발자 입니다.

트랙백  0 , 댓글  0개가 달렸습니다.
secret