雰囲気でJAX-RSを使うことからの卒業のための調査

JAX-RSを仕事で使ったのですが、理解できず完全に雰囲気で使っています。自分の認識を確認し、理解に不足していることを調査して記事にまとめます。

そもそもJAX-RSという言葉はどういう意味なのか。ウィキペディアによると、次の言葉の略称とあります。

Java API for RESTful Web Services

Xどっから来たんだよ!!とツッコミを入れつつウィキペディアの続きを読んでいくととても分かりやすい説明がありました。

RESTアーキテクチャに基づくWebサービスのための機能を提供するJava言語のAPIである

JAX-RS 出典: フリー百科事典『ウィキペディア(Wikipedia)』

詳しくみていきます。

  • 概念としては他のアドレス空間のWebClient – WebService間でRESTで通信するための技術。偉大なる先人がJavaのライブラリが用意してくれている。

  • JAX-RSを使用すると、通信するときのMediaTypeと受け取って使用するときのMediaTypeを指定することが出来る。例えば通信はJSONで、使うときには任意のJavaClassで。これはJAXBという技術を内部的に使用していて、通信するときにはデータ量を抑えて使用するときには人間が使いやすいMediaTypeにすることが出来る。

  • 通信先と通信元でJavaClassを使用するときには同じJavaClassを持っていないと受け渡して変換することが出来ない。

  • WebClient側はWebService側のIPやHOST名、Path(Methodにマッピングされている名)を指定することで、その場所にデータを送ることが出来る。

  • WebService側は送り返す先を指定する必要は無くて、単純に返せばOK。このとき疑問なのがReturnで返せばいいのかということ。

上記のようにRESTを考慮にいれてJAX-RSを考えると理解しやすいかと思います。RESTを雰囲気で使っている方でしたら、RESTを理解することでJAX-RSを理解することの手助けになるはずです。また、Servletについても同様です。