초보자가 Kotlin + Spring Boot의 Get 요청에서 JSON을 반환하기 위해 한 일
8938 단어 Jacksonspring-bootKotlin
서버의 경험은 한순간 밖에 없습니다 🥺🥺🥺 (Java의 입문서를 해낸 정도...
전제
먼저
@getMapping
에서 String을 반환하는 방법은@ 스가사키의 Kotlin + Spring Boot에서 Hello! World!은 간단하고 이해하기 쉽고 좋았습니다. 다사 🙏
( Spring Initializr의 모습이 바뀌었기 때문에 주의가 필요하네요)
▼▼▼ 참고로 생각해본 코드
GetJsonController.kt
package com.example.demo
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RestController
@RestController
class GetJsonController {
@GetMapping("/get")
fun getJson(): String {
return "私はここでJSONを返したい"
}
}
return에서 JSON을 반환하고 싶은 느낌
단순히
return
의 문자열을 JSON처럼 보았습니다.GetJsonController.kt
@GetMapping("/get")
fun getJson(): String {
return "{\"id\": 1, \"name\": \"test\"}" // エスケープしんどいですね!
}
이스케이프가 조금 심한 모양을하고 있었기 때문에 조사해 보았습니다.
"""
로 둘러싸는 것도 같은 일을 할 수 있는 것 같습니다.→ 【Kotlin 입문】 더블 쿼테이션 안에 더블 쿼테이션을 표현하는 방법
GetJsonController.kt
@GetMapping("/get")
fun getJson(): String {
return """{"id": 1, "name": "test"}"""
}
▼▼▼ 그렇게 표시됩니다 🎉🎉🎉
return으로 만든 JSON을 반환하고 싶은 느낌
일일 수치하는 것은 힘들기 때문에, JSON을 만들어 던지고 싶습니다.
(옛날, JSON 파일을 어떻게든하고 싶을 때, Jackson을 사용한 것 같은 ...)라고 생각했기 때문에
build.gradle
를 확인해 봅니다.build.gradle.kts
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
오, 확실히 들어 있습니다! 즉시 사용하고 싶습니다.
(처음 들었을 때는 제이슨이야? 잭슨이야?? 사람 이름???
👾👾👾
우선
@JsonCreator
하기 위한 클래스를 만들었습니다.Data.kt
package com.example.demo
import com.fasterxml.jackson.annotation.JsonCreator
data class Data @JsonCreator constructor (
val id: Int,
val title: String
)
쓰고 있어 「에?data class ~~ constructor()는 무엇?」라고 된 자신을 위해서
→ Kotlin의 data class의 생성자에 대해 현역 엔지니어가 해설 【초보자용】
컨트롤러에서 이 Data 클래스를 사용하도록 다시 씁니다.
GetJsonController.kt
@RestController
class GetJsonController {
@GetMapping("/get")
fun getJson(): Data { // 返り値の型をDataにして
val data = Data(
id = 1,
title = "create JSON!"
) // Data()を使って値を入れて
return data // dataを返します
}
}
▼▼▼ 할 수 있었습니다~🎉🎉🎉
지금까지 spring + kotlin에서 JSON 요청 및 응답을 시도했습니다.
How to build a Simple REST API with Kotlin and Spring Boot을 참고했습니다. 🙏🙏
요청시 매개 변수를 사용하여 만든 JSON을 반환하고 싶은 느낌
할 수 있을까요? 라고 생각했으므로 해 보겠습니다.
@RequestMapping
및 @RequestParam
를 추가해 봅니다.GetJsonController.kt
@RestController
@RequestMapping
class GetJsonController {
@GetMapping("/get")
fun getJson(@RequestParam(value = "title", required = false, defaultValue = "Test title") title: String,
@RequestParam(value = "id", required = false, defaultValue = "1") id: String): Data {
val data = Data(
id = "$id".toInt(),
title = "$title"
)
return data
}
}
이제 매개 변수에
?title='hogehoge'&id=4
등을 포함하면 반영됩니다.▼▼▼
?title='wow'&id=3
를 붙여 보았을 때의 결과입니다 wow🎉🎉🎉Reference
이 문제에 관하여(초보자가 Kotlin + Spring Boot의 Get 요청에서 JSON을 반환하기 위해 한 일), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Maoh_D/items/dd4421b49d23c637a0a5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)