複数の外部APIを呼び出してハンドリングするService層を追加する。
Package
Service層用にserviceパッケージを作成
Serviceクラス
@Autowiredで外部APIを呼び出すrepositoryクラスを設定し、タスクを取得するfunctionを追加
@Service
class TaskService @Autowired constructor(
val taskRepository: TaskRepository,
val userRepository: UserRepository) {
fun getTask(taskId: Int): Task {
val task = taskRepository.getTask(taskId)
val user = userRepository.getUser(1)
return Task(
taskId = task?.taskId ?: 0,
title = task?.title ?: "",
description = task?.description ?: "",
userName = user?.userName ?: "unknown")
}
}
Controller修正
Controllerは追加したServiceクラスのfunctionを呼び出すように修正
@GetMapping("/{taskId}")
@ResponseBody
@ResponseStatus(HttpStatus.OK)
fun getTask(@PathVariable("taskId") taskId: Int): Task {
return taskService.getTask(taskId)
}
起動確認
サービスを起動し結果を確認
http://localhost:8080/tasks/12345
{"taskId":12345,"title":"タスクのタイトル","description":"タスクの詳細説明","userName":"タスクの管理者A"}
コメントを残す