[kotlin] 코틀린과 스프링의 RESTful API 개발
본 블로그에서는 코틀린과 스프링을 사용하여 RESTful API를 개발하는 방법에 대해 알아보겠습니다.
목차
코틀린과 스프링
코틀린은 자바 가상 머신(Java Virtual Machine, JVM) 상에서 실행되는 정적 타입 프로그래밍 언어입니다. 스프링은 자바 엔터프라이즈 애플리케이션을 위한 프레임워크로, 코틀린과의 호환성을 지원합니다.
RESTful API 설계
RESTful API를 설계할 때에는 몇 가지 원칙을 준수해야 합니다.
- 자원(Resource) 식별: 요청할 자원을 명확히 식별해야 합니다.
- 행위(Verb) 명시: HTTP 메소드를 활용하여 자원에 대한 행위를 명시합니다.
- 표현(Representation): 요청에 대한 응답은 JSON, XML 등의 데이터 형식으로 표현됩니다.
- 연관(HATEOAS): 애플리케이션 상태를 전이하는 방법을 제공해야 합니다.
코드 예시
import org.springframework.web.bind.annotation.*
import org.springframework.http.ResponseEntity
import org.springframework.http.HttpStatus
@RestController
class UserController(private val userService: UserService) {
@GetMapping("/users/{id}")
fun getUser(@PathVariable id: Long): ResponseEntity<User> {
val user = userService.getUser(id)
return ResponseEntity.ok(user)
}
@PostMapping("/users")
fun createUser(@RequestBody user: User): ResponseEntity<User> {
val newUser = userService.createUser(user)
return ResponseEntity.status(HttpStatus.CREATED).body(newUser)
}
@PutMapping("/users/{id}")
fun updateUser(@PathVariable id: Long, @RequestBody user: User): ResponseEntity<User> {
val updatedUser = userService.updateUser(id, user)
return ResponseEntity.ok(updatedUser)
}
@DeleteMapping("/users/{id}")
fun deleteUser(@PathVariable id: Long): ResponseEntity<Unit> {
userService.deleteUser(id)
return ResponseEntity.noContent().build()
}
}
위 코드는 코틀린으로 작성된 스프링 컨트롤러의 예시입니다.