Web開発など

Java, JS, CSS, HTML, Unity, C# のことなどを書いてます。フリーソフトや二次創作の公開もしています。

Kaze:Javaフレームワーク(開発記録2018.04.05)

Kaze という Java の Webフレームワークを開発していて、先日バージョン 0.2.7 をリリースしました。

今回は、Kaze を使って JSON を返すサンプルを書いてみようと思います。

サンプル

今回の例は、readme.md にも書いてあります。

1. 依存性の追加

pom.xml に、以下の依存性を追加します。

<dependency>
  <groupId>com.github.mamorum</groupId>
  <artifactId>kaze</artifactId>
  <version>0.2.7</version>
</dependency>
<dependency>
  <groupId>org.eclipse.jetty</groupId>
  <artifactId>jetty-servlet</artifactId>
  <version>9.4.6.v20170531</version>
</dependency>
<dependency>
  <groupId>com.google.code.gson</groupId>
  <artifactId>gson</artifactId>
  <version>2.8.2</version>
</dependency>

今回は組込みJetty(サーブレットコンテナ)と Gson(JSONパーサ)を使います。

2. メインクラスの作成

JSONパーサを設定して、コンテナを起動するクラスを作成します。

package kaze.sample.gs.json;

import com.google.gson.Gson;

import kaze.App;
import kaze.server.Jetty;

// app -> http://localhost:8080/app/msg
// doc -> http://localhost:8080/*
public class GsonMain {
  static final Gson gson = new Gson();
  public static void main(String[] args) {
    App app = new App();
    app.conv(gson::fromJson, gson::toJson);
    app.get("/msg", (req, res) -> {
      res.json("msg", "Hello World.");
    });
    Jetty.app(app, "/app/*");
    Jetty.doc("/public", "/");
    Jetty.listen(8080);
  }
}

リクエス/app/msg が来ると、JSON を返すようにしています。

3. 実行

下の Maven コマンドを実行したり、ソースを Eclipse にインポートして、メインクラスを実行します。

gs> mvn compile
gs> mvn exec:java -Dexec.mainClass=kaze.sample.gs.json.GsonMain

完全な pom.xml などの資源は、kaze-samples/gs にあります。

4. 確認

サーバーが起動したら、JSON が返ってくることを確認できます。

> curl -s -X GET http://localhost:8080/app/msg
{"msg":"Hello, World."}

静的コンテンツ(src/main/resources/public/*)は、http://localhost:8080/* にアクセスすると確認できます。