KotlinではじめるJAX-RS

こっとりーん!(挨拶)

説明はもろもろすっ飛ばしてリソースクラスのコード掲載します。

package app

import javax.ws.rs.core.MediaType
import javax.ws.rs.GET
import javax.ws.rs.Path
import javax.ws.rs.Produces
import javax.ws.rs.QueryParam as q

Path("hello")
Produces(MediaType.TEXT_PLAIN)
class Hello {

    GET fun get(q("name") name: String): String = "Hello, ${name}!"
}

という感じで普通にJAX-RSできました。

というかnameがnull許容しないので@DefaultValueを付けるべきと今思いましたので気が向いたら直しておきます(やらないパターン)。

サンプルが簡易すぎてKotlinの良さが出ていないのが悲しいですね。

良かった点。

  • Mavenで簡単にビルドできた
  • MavenプロジェクトをIntellij IDEAで容易くインポートできた
  • たろーさん とTwitterで絡めた

微妙な点。

  • Intellij IDEAのKotlinプラグインのOrganize Importが弱い気がする
  • Intellij IDEAのコードフォーマットが option + command + l で両手使うのがやだ
  • Intellij IDEAで command + w でファイルが閉じてくれなかった

そんな感じです。 要するにIntellij IDEAに慣れていないだけ、と。

それと テストクラス はJavaで書いていますが、これはアノテーション付きのstaticメソッドの書き方が分からなかったからです。 きっと誰かがKotlinに直してプルリクしてくれるに違いない(チラッ

本日のコードはGitHubにあります。 Arquillian のwildfly-managedでテスト書いてます。 テスト実行すると多くのJARと WildFly 8.1.0.Final をダウンロードするので時間のあるときにどうぞ。

Kotlinの勉強会もあるみたいですよ。