RestTemplate 와 ObjectMapper 활용기(스프링에서 다른 서버의 JSON API Token 을 가져와서 이용해야 할 때)

2021. 9. 24. 14:53·Framework & Runtime/SpringBoot

 

우선 API 서버의 스펙을 확인하고 data class 를 만들어 줍니다.

data class GetToken(
    val responseCode: String,
    val token: String
)

 

Http Request 이후 Json 을 담아줄 클래스에 아래 내용을 추가해 줍니다.

@Autowired
lateinit var restTemplate: RestTemplate

var mapper: ObjectMapper = ObjectMapper().registerModules(KotlinModule())

 

펑션을 하나 만드셔서 안에 아래 내용을 작성하기 시작합니다.

val headers = HttpHeaders()
headers.contentType = MediaType.APPLICATION_JSON

 

contentType 은 스팩에 맞게 MediaType 을 넣어주세요.

추가 커스텀 헤더는

 

set(String headerName, @Nullable String headerValue)

함수를 이용해줍니다.

 

저같은 경우에는, 요청할 때 ID 와 Password 를 body 에 담아야 했기에 아래와 같이 작성합니다.

val bodyJsonObject = JSONObject()
bodyJsonObject.put("sid", SerialId)
bodyJsonObject.put("passwd", Password)

// 코틀린 스럽게
val bodyJsonObject = JSONObject().apply {
	put("sid", SerialId)
	put("passwd", Password)
}

 

위 정보대로 요청 변수를 생성해줍니다.

val request = HttpEntity(bodyJsonObject.toString(), headers)

 

이제 요청할 차례입니다.

"https://www" 부분에 URL 주소를 입력합니다.

val response: String = restTemplate.postForObject<String>("https://www", request, String::class)

저는 http request 에 post method 를 이용해야 하였기에 postForObject() 를 이용하였습니다.

get 은 getForObject() 라는 함수가 있습니다.

 

응답 값을 data class 와 매핑하기 위해 아래와 같이 작성합니다.

val getToken = mapper.readValue(response, GetToken::class.java)

 

 

이렇게 작성해 주시면 객체가 잘 담겨지게 됩니다.

 

ObjectMapper 는 코틀린에서 사용 방법이 난해한 부분이 있어 아래 블로그를 참고하였습니다.

좋은 공부가 되었습니다. 들어가셔서 보시면 많은 도움이 되실겁니다.

 

https://kapentaz.github.io/kotlin/json/Kotlin-and-Jackson-(ObjectMapper)/

 

Kotlin and Jackson (ObjectMapper)

kotlin 환경에서 Jackson 라이브러리를 사용할 때 객체 변환이 생각대로 잘 안될 수 있습니다. 어떤 경우가 있는지 어떻게 해결할 수 있는지 확인해 보겠습니다.

kapentaz.github.io

 

반응형
저작자표시 비영리 (새창열림)
'Framework & Runtime/SpringBoot' 카테고리의 다른 글
  • [Kotlin] Unexpected error occurred in scheduled task (how to solve or fix)
  • Initialized JPA EntityManagerFactory for persistence unit 'default' Stuct 문제 해결
  • Kotlin Spring Boot 에 Querydsl 종속성이 추가된 프로젝트 소스 공유
  • Spring Boot REST API Spring Security 고유키 만들어서 접근 제한하기(api key and secret)
Kua
Kua
정보 공유, 개인 정리 공간 입니다.
  • Kua
    Kua's Miscellaneous
    Kua
    • 분류 전체보기 (185)
      • 대문 (2)
      • Tips (25)
        • Chrome (2)
        • Windows (4)
        • IDE (3)
        • 기타 (16)
      • CodingTest (44)
      • Language (20)
        • PHP (5)
        • C# (7)
        • Java (1)
        • Kotlin (7)
      • Framework & Runtime (16)
        • SpringBoot (12)
        • Node.js (2)
        • Vue.js (1)
        • Gradle (1)
      • DevOps (13)
        • Linux (1)
        • Docker (4)
        • Kubernetes (2)
        • Apache Kafka (1)
        • AWS (1)
      • 일상다반사 (53)
        • 도서 (1)
        • 개발 (8)
        • 후기 - IT (7)
        • 후기 - 일상 (13)
        • 차가리 (4)
        • 방송통신대학교 (4)
        • 음식 (2)
      • Games (12)
        • Minecraft (7)
        • VR (2)
        • 그외 (3)
  • 최근 글

  • 인기 글

  • 태그

    c#
    spring
    Algorithm
    코딩테스트
    bronze1
    백준
    알고리즘
    Plugin
    후기
    java
    codingtest
    minecraft
    Spring Boot
    Silver5
    bronze2
    error
    Windows
    github
    갤럭시
    Kotlin
  • 전체
    오늘
    어제
  • hELLO· Designed By정상우.v4.10.0
Kua
RestTemplate 와 ObjectMapper 활용기(스프링에서 다른 서버의 JSON API Token 을 가져와서 이용해야 할 때)
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.