[Java]Spark Framework試す

Apache Sparkじゃないよ Spark Frameworkだよ

SparkというJavaのWebフレームワークを試したのでメモしておきます。サクッと気軽にできて良い感じでした。

SparkでAPIサーバ作る

こないだ作ったSalesforceの資格取得情報スクレイパーを組み込んで任意の資格の取得情報を返すAPIサーバを作ってみます。
Sparkはとてもシンプルなフレームワークなので公式ドキュメント見ればだいたい分かるのが良いですね。

pom.xml

spark-coreが本体。今時点で最新は2.1。
JSON形式で結果を返すAPIにしたいのでgoogle gsonライブラリも一緒にインストールしておきます。

サーバーの書き方

以下本家ドキュメントから引用

メインメソッド内にメソッド、パス、処理を書けばこれだけでもう動きます。素晴らしい。
ただルーティング増えてきた時にごちゃごちゃしそうなので今回はコントローラクラスみたいなのを作ってそちらにルーティングを定義するようにしました。

サーバ本体

サーバクラスではコントローラの登録の他にポートと静的コンテンツの設定をしてます。
ポートを環境変数から取ろうとしているのはなんとなくherokuで動かそうかなと思っているからです。
デフォルトは5353ポートとしています。

コントローラ

パスの「:cert-name」部分はバインド変数的に動いてくれます。あとAPIControllerという基底クラス切りました(軽やかさが失われてる気がするけど…)。

APIコントローラ(基底クラス)

ここではJSON形式でレスポンス返す用のResponseTransformerクラスを定義しています。これはドキュメントから丸パクリ。
あと共通のafterフィルタを用意してコンテントタイプの設定とCORS全オリジンパターン開放してます。

ビジネスロジック

前回作ったものを使い回してます。

画面

APIサーバだけなのもアレなので、資格情報を一覧表示する画面をでっち上げました。

無駄にKnockout.jsを使ってます。ていうか初めて使ったけど凄く良いものですね。CSSバインディングとか素晴らしい。

見た目はこんなん
sparktest_2015-04-01

Bitbucketリポジトリ
今度は資格情報を元ネタにd3とか使ってビジュアライズしたいなと思ってます。
あとMongoに永続化するとか。その辺できたらHerokuに乗せようかなーとか


コメントを残す