Dropwizard 使ってみた
Cofigurationクラス
ymlファイルから設定値を受け取るクラス。
ymlファイルの内容がこのクラスに設定される。
@NotEmpty
対象がnullでなく、空でないことを保証するためのアノテーション。
@JsonProperty
わからーん
Applicationクラス
mainクラスとして実行されるクラス。
initialize
クラスが初期化した時やインスタンスが生成された時に、その直後に変数を初期化する。
Representationクラス(Hello.java)
Jsonで返す値を保持するPOJO(普通のオブジェクト)を作成する。
Resourceクラス
Controllerにあたるもの。
JerseyのResourceクラスを作成する。
Applicationクラスに登録が必要。
Jersey
Javaで作るWebアプリをREST対応するために必要な作業を簡素化できる。
REST
HTTPを使ったシンプルなWebサービス。
すべてのリソースは一意なアドレスで識別される。
@Timed
実行時間がログに残る。
@Produces
リソースのメソッドが生成し、クライアントに返却することができるMIMEタイプを指定する。
MIMEタイプ
WebサーバのWebブラウザ間でやりとりされるデータの中でファイル形式を表す識別子のこと。
ex)
ファイル形式 テキスト
一般的な拡張子 .txt
MIMEタイプ text/plain
@GET
受信HTTPリクエストをJavaメソッドにマッピングして、リソースを取得する。
@QueryParam
受け取った値を、自動でURLデコード処理する。
@Encoded
URLデコード処理をして欲しくない時に使う。
ex)
public Hello say(@QueryParam("name") @Encoded String name) { }
URLエンコード
ex) テキスト
URLデコード
ex) %83e%83X%83g