코틀린 시작 기록(2)
웹 프로그래밍/Kotlin

코틀린 시작 기록(2)

728x90
반응형

1. JSON으로 던지기

DTO (Data Transfer Object) 라고 표현하면서 사용을 하는듯?

demo/dto/HelloResponse.kt 를 만들어 사용하기로 했다.

package com.example.demo.dto

data class HelloResponse(
    val message: String
)

 

주의: ()로 묶어야한다. {}로 묶으면 안돼

 

package com.example.demo

import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RestController
import com.example.demo.dto.HelloResponse

@RestController
class HelloController {
    @GetMapping("/hello")
    fun hello(): HelloResponse {
        return HelloResponse(message="HEllo Aiden! JSON")
    }
}

결과

 

 

2. POST 메서드 만들기

구상: name을 POST로 보내면 받아서 Hello, {name} 을 GET하자.

 

- HelloRequest.kt

package  com.example.demo.dto

data class HelloRequest(
    val name: String
)

 

- HelloController.kt

package com.example.demo

import org.springframework.web.bind.annotation.*
import com.example.demo.dto.HelloResponse
import com.example.demo.dto.HelloRequest

@RestController
@RequestMapping("/hello")
class HelloController {
    @PostMapping
    fun helloPost(@RequestBody request: HelloRequest): HelloResponse {
        val message="Hello, ${request.name}!"
        return HelloResponse(message)
    }
}

 

@RequestMapping

@PostMapping

이거 DRF에서 전체경로에 있는 urls.py가 RequestMapping이고 app아래에 있는 urls.py가 PostMapping임.

@PostMapping이랑 @PostMapping("/") 이랑 동일하게 보면됨.

 

 

@RequestBody는 JSON 요청 바디를 파라미터로 받으려고 사용한 것.

728x90
반응형

'웹 프로그래밍 > Kotlin' 카테고리의 다른 글

Intellij에서 실행안되는 문제  (0) 2025.04.18
코틀린 시작 기록(3)  (0) 2025.04.07
코틀린 시작 기록 (1)  (1) 2025.04.06