普段はJava×Playframeworkを使ってアプリケーションの開発などを行なっております。
私、昨年の4月に入社した新卒でして、入社して始めてプログラミングというものに触れました。
まだまだ経験不足でヒーヒー言いながら日々を過ごしている次第でございます。
記事を書かせていただくのは初めてなのですが、どうぞよろしくお願い致します。
私の部署の上司、PLayframework界隈では有名なikeike443氏でございまして。
Playframeworkのコミッター(Playframeworkにコミット権限を持っている人)でございまして。
このお方の勧めで、Playframeworkを普段から使用しております。
今回は掲題の通り、私が普段使っています「Playframework」の紹介をさせて頂きます。
と、言いましても。
Playは日本語の紹介サイトが存在していますので、、、(http://playdocja.appspot.com/)
ここでは使ってみて、「これはいいなぁ」と思った機能を紹介させて頂きます。
ちなみに、私が現在使用しているPLayframeworkのバージョンは「1.2.4」でございます。
・パラメータの受け渡しが多彩!
パラメータをリストとして受け取ることができます。
例えば以下のように、
public static void sample(List<String> listValues) { (略) }
メソッドの引数をList<String> listValuesとかにしてあげたとします。
その際に、URLパラメータに
/sample?listValues=1&listValues=2&listValuse=3
とかやってあげますと
「listValuesはList<String>型だから、受け取った値はStringにしてListで持てばいいんだネ!」
って解釈してくれます。ので、結果としてlistValuesを
listValues = {1,2,3};
って感じで受け取ってくれます。
これはListに限らずほとんどの型についてもあてはまることでして、
String,Integer,Doubleなどは言うまでもなく、MapやDate,さらには自分で独自に作成したクラスにも当てはめることが可能です。例えばこんなクラス
public class Original { public String name; public Integer age ; }
があったとして、受け口が
public static void sample(Original origin) { }
のようになっている場合には、URLパラメータに
/sample?origin.name=しんのすけ&origin.age=23
という風に与えてあげることで、パラメータの受け渡しが可能になっています。
・renderで、変数をそのままHTMLにレンダリングできるよ!
renderという機能を使えば特定のHTMLテンプレートに対して変数を受け渡すことができます。
まずはこんな風にメソッドを作ります。
public static void sample(String name,Integer age) { render(name,age); }
次はこのメソッドから変数を受け渡す先のHTMLを作成します。
名前は先ほど作成したメソッドと同じ名前にしますので、ここの場合はsample.htmlとします。
HTMLの中身は
${name}さんの年齢は${age}歳です。10年後は${age+10}歳ですね!
こんな感じでいいでしょう。リクエストURLは
/sample?name=しんのすけ&age=23
こうします。実行すると。。。
しんのすけさんの年齢は23歳です。10年後は33歳ですね!
と、このように。URLから受け渡したパラメータが表示されていますね。
renderの中に渡したい変数を入れてあげて、テンプレート側で${変数名}を書いてあげれば、
それだけで受け渡しが可能になっています。
・renderJSONでレスポンスをJSON形式に!
また、renderJSONという機能を使えばレスポンスをJSON形式で返すことも可能です。
先ほどのクラスOriginalを使って説明しますと
public static void sample(String name,Integer age) { Original original = new Original(); original.name = name; original.age = age; renderJSON(original); }
こういう風に使用することができます。URLは
/sample?name=しんのすけ&age=23
先ほどと同じくこんな感じで実行します。するとレスポンスは
{(“name” : ”しんのすけ” , “age” : 23)}
みたいになります。もちろん形式はJSON形式になっています。
自分で加工してあげる必要とかはありません。ステキ。
自分はこの機能を使用してレスポンスをJSONで返すAPIを作ったりしてました。
さて、本当に、本当に少しだけですが、Playframeworkの紹介をばさせていただきました。
もっと詳しいことが知りたい方は、ぜひともPlayframeworkのサイトを訪れてください!
今回は単なる紹介になってしまいましたが、こんなこと発見したぜ!みたいな、新しい何かを発信できるようになりたいですね、はい。
それでは今後ともよろしくお願いいたします!