概要 / 説明
ことりんと一緒 Springもね - 2. RestController と Data Classで、REST API アクセスが出来るようにコントローラクラスを追加しました。
ただし、追加した API は GET アクセスができるもののみの、非常に単純なアプリケーションでした。
今回は、PUT / POST / DELETE でのHTTP メソッドでのアクセスができるように API を追加してみます。
その中で、Kotlin での関数の書き方の1つで波括弧の省略を紹介します。
前提 / 環境
ランタイムバージョン
- Kotlin : 1.3.0
- SpringBoot : 2.1.0.RELEASE
Spring Dependencies
- Web
開発環境
- OS : Mac
- IDE : IntelliJ IDEA
- Build : Gradle
その他
- APIデザイン
- 分かりやすくするため、きちんとしたAPIデザインはしてません。GET/PUT/POST/DELETEのそれぞれのAPIに、それぞれのアクセスパスを付与しています。
手順 / 解説
以前に GET アクセス用に用意した API では、以下のように@GetMapping
アノテーションを使いました。
@GetMapping(value = ["/display"])
fun getMessages() : List<Message> {...}
PUT/POST/DELETE も同様にそれぞれ @PutMapping
/ @PostMapping
/ @DeleteMapping
を使って定義します。
@PutMapping(value = ["/insert"])
fun insertMessage(@RequestBody message: Message) : Message {...}
@PostMapping(value = ["/update"])
fun updateMessage(@RequestBody message: Message) : Message {...}
@DeleteMapping(value = ["/delete/{id}"])
fun deleteMessage(@PathVariable(name = "id") id: String): Boolean = {...}
関数から波括弧の省略
通常、関数を定義するときは {...}
波括弧 で囲み、その中に処理する式を記述します。
Kotlinでは、その式がただ1つの場合、波括弧を省略して記述する事ができます。
よって、次の2つの関数は同じ意味となります。
@DeleteMapping(value = ["/delete/{id}"])
fun deleteMessage(@PathVariable(name = "id") id: String): Boolean {
return true
}
@DeleteMapping(value = ["/delete/{id}"])
fun deleteMessage(@PathVariable(name = "id") id: String): Boolean = true
まとめ / 振り返り
今回は関数で波括弧を省略する記述を紹介しましたが、Kotlin では他にもいろいろな省略する記述ができ、簡潔にコードを書く事ができます。
今後も Spring でアプリケーションを作っていく中で簡潔に記述出来る箇所を説明していこうと思います。