#6 [SpringBoot/KotlinでBFF]Repository層の作成

外部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)

コード
https://github.com/little-engineer/bff-sample/pull/7

コメントを残す

メールアドレスが公開されることはありません。

ABOUT US
little
15年以上プログラマーをしているエンジニアです。Kotlin, Java, Python, C++を使用したServerSideの開発に携わってきました。とりあえずやってみるスタイルで記事を更新していきます。