Kua
Kua's Miscellaneous
Kua
  • 분류 전체보기 (163)
    • 대문 (2)
    • Tips (23)
      • Chrome (2)
      • Windows (3)
      • IDE (3)
      • 기타 (15)
    • CodingTest (44)
    • Language (19)
      • PHP (5)
      • C# (7)
      • Java (1)
      • Kotlin (6)
    • Framework & Runtime (12)
      • SpringBoot (8)
      • Node.js (2)
      • Vue.js (1)
      • Gradle (1)
    • DevOps (12)
      • Linux (1)
      • Docker (4)
      • Kubernetes (2)
      • Apache Kafka (1)
      • AWS (0)
    • 일상다반사 (40)
      • 도서 (1)
      • 개발 (7)
      • 후기 (12)
      • 방송통신대학교 (4)
      • 음식 (2)
    • Games (11)
      • Minecraft (7)
      • VR (2)
      • 그외 (2)

다른 링크

  • Github

최근 글

  • Gson 직렬화/역직렬화를 이용하⋯
    2022.06.16
    Gson 직렬화/역직렬화를 이용하⋯
  • [Ubuntu] screen 명령어 사용법
    2022.06.10
    [Ubuntu] screen 명령어 사용법
  • 갤럭시 웨어러블 앱처럼 컴퓨터⋯
    2022.05.30
    갤럭시 웨어러블 앱처럼 컴퓨터⋯
  • Observer 패턴 예제
    2022.05.26
    Observer 패턴 예제
  • 경동나비엔 전기온수기 A/S에⋯
    2022.05.25
    경동나비엔 전기온수기 A/S에⋯

인기 글

  • 쿠버네티스 전문가 양성 과정 2⋯
    2021.10.30
  • 쿠버네티스 전문가 양성 과정 2⋯
    2021.12.19
  • 쿠버네티스 전문가 양성 과정 2⋯
    2021.12.28
  • Twitch Now 는 이제 작동하지⋯
    2022.03.02
    Twitch Now 는 이제 작동하지⋯
  • 방송대 졸업 이후 학교 이메일⋯
    2022.02.16
    방송대 졸업 이후 학교 이메일⋯
반응형

최근 댓글

  • 안녕하세요 메일로 답변을⋯
    Kua
  • 안녕하세요, 메일로 답장 드렸⋯
    Kua
  • 세대가 더 중요하긴 하지만, cp⋯
    Kua
  • 안녕하세요 먼저 후기글 감사합⋯
    bbbb56146
  • 안녕하세요 네, 저도 재직 중입⋯
    Kua

태그

  • Silver5
  • Kotlin
  • java
  • bronze1
  • 알고리즘
  • error
  • spring
  • Level1
  • Algorithm
  • 마인크래프트
  • codingtest
  • Plugin
  • 플러그인
  • 코딩테스트
  • 백준
  • function
  • minecraft
  • github
  • bronze2
  • c#
전체 방문자
27,257
오늘
29
어제
66
hELLO · Designed By 정상우.
Kua

Kua's Miscellaneous

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

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

2021. 9. 24. 14:53

 

우선 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)
    JSON, Kotlin, KotlinModule, ObjectMapper, restTemplate, Spring Boot
    Kua
    Kua
    정보 공유, 개인 정리 공간 입니다.
    댓글쓰기
    다음 글
    코틀린에서 java.time.LocalDateTime 을 비교하기
    이전 글
    Kotlin Spring Boot 에 Querydsl 종속성이 추가된 프로젝트 소스 공유
    • 이전
    • 1
    • ···
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • ···
    • 163
    • 다음

    티스토리툴바