data class UserResponse(
val id: Long,
val name: String,
val email: String
)
@RestController
@RequestMapping("/users")
class UsersController {
@PostMapping
fun createUser(@RequestBody request: CreateUserRequest): ResponseEntity<UserResponse> {
return ResponseEntity.ok(
UserResponse(
id=1,
name=request.name,
email=request.email
)
)
}
}
dto 만들어서 response로 전달하면 json 형식의 응답 결과를 만들어주는 것을 알 수 있다.
% curl -X POST -H "Content-Type: application/json" -d '{"name":"John", "password":"password123", "email":"john@example.com"}' http://localhost:8080/users
{"id":1,"name":"John","email":"john@example.com"}
dto는 controller layer에서 사용하고, model은 service layer에서 사용하려고 한다. 이게 맞는건지는 좀 더 개발해보면서 확인해보자.