外部APIを呼び出すRepository層を作る。
Repository層用(API呼び出し層)のパッケージ作ってKotlinファイルを追加。
外部APIのモデル用packageも作る。わかりやすくexternalapiとしておく。
package
外部API用モデル
#5で作成したタスク情報用の外部APIのモデルクラスを作成。ここではFrontend向けのモデルとクラス名が被ってしまうけどpackageを別にしてるのでよしとする。
data class Task (
val taskId: Int? = null,
val title: String? = null,
val description: String? = null,
val created: Date? = null
)
repositoryクラス
task-api専用のrepositoryクラスを作成しタスク情報を取得するfunctionを作成。
@Repository
class TaskRepository {
fun getTask(taskId: Int): Task? {
val restTemplate = RestTemplate()
val uri = "http://localhost:50000/tasks/$taskId"
return restTemplate.getForObject(uri, Task::class)
}
}
確認
外部API用のサービスも立ち上げておいた上で、一時的にコントローラー層に以下の実装を入れて、呼び出して結果を確認する。
val task = taskRepository.getTask(taskId)
println(task)
ひとまずコンソールに表示されたことを確認。
2020-09-17 23:20:12.535 INFO 53365 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 3 ms
Task(taskId=123456, title=タスクのタイトル, description=タスクの詳細説明, created=Thu Sep 17 23:20:12 JST 2020)
コメントを残す