Doge log

Abby CTO 雑賀 力王のオフィシャルサイトです

Teeda-REST

実はExtention系であったらいいのはREST系なんじゃないかなあ。
J2EE勉強会には出れなかったけどRESTのお話が出てたようです。
私も全然詳しくないですが。
Djangoの場合は

  • GET:参照処理
  • POST:登録

というように暗黙の了解でそーいう作りになっています。
(ルール化ってわけでもないがURLデザイン重視なフレームワークだと勝手にこうなる)
個人的にjavaでRESTってあんましないよなあと思ってるけど。
あったら使う人いるかねえ?便利かねえって所からの議論かも。

rest-rule.xml

<rest-rule>
     <rest>
        <url>/Action1/(?P<year>\d{4})/</url>
        <value>#{Action1.doAction}</value>
    </rest>
     <rest>
        <url>/Action2/(?P<year>\d{4})/(?P<month>\d{1,2})</url>
        <value>#{Action2.doAction}</value>
    </rest>
</rest-rule>

基本的にはURL命!みたいな設定が出来ないとRESTは使えないのでこんなルールを作成する。
で各URLに対しメソッドを割り当てていく。
さらにURLにパラメータも埋め込めるようにしちゃう。

Action1.java

public class Action1 {

    private String year;
    
    private String method;

    public Action1() {
    }

    public String getMethod() {
        return this.method;
    }

    public void setMethod(String method) {
        this.method= method;
    }

    public String getYear() {
        return this.year;
    }

    public void setYear(String year) {
        this.year = year;
    }
    
    public String doAction(){
        if(this.method.equals("GET")){
        return "getaction";
        }else{
        return "action";
        }
    }
}

method属性にGETとかPOSTとか入ってくるので判断してねって感じ。
methodごとに呼び出しメソッドを設定すると地獄なのでなるだけシンプルにURLとメソッドを紐付けるくらいで。
うーん、なんかできそこないだな。
まだまだめんどいね。
meta情報つけて呼び出しできるかを設定できるようにして

http://<ホスト名>/<RestServlet名>/<コンポーネント名>/メソッド名/<param1>/<param2>/

とかにしたらちょっとは楽になるかも。
まーまだまだできそこないだな。
うくく。