質問: ### javaでWebAPIを作りたい java初心者です。javaを使ったWebアプリケーション作成を勉強しており 「スッキリわかるサーブレット&JSP入門」という本を読んで、Tomcatを使い、簡単なWebアプリを作れるようにはなりました。 今度はWebAPIを作ろうと考えているのですが、ネットで調べるとJerseyというライブラリを使った サンプルが多くみられます。 疑問なのですが、自分の認識ではHTMLの代わりにJsonなどを返しているのがWebAPIというイメージでした。 なので現状のTomcat+sarvletでWebAPIは作れると感じているのですが、jerseyを使う理由はなんなのでしょうか? また、業務で社内でつかう簡単なWebアプリケーションを作るのですが、 やはりなんらかのフレームワークを利用するべきでしょうか? (これまでのシステムでは使用されていないようです。)
回答: TomcatとServletだけでもWebAPIは作れます。しかし、Jerseyを使った方が簡単で標準的なものがつくれるいうことです。 Jerseyは、RESTfulなWebサービスを実現することに特化した、JavaのOSSの**フレームワーク**です。一般的にフレームワークを使う理由として、以下のようなことが挙げられます。 ・開発工数の削減 ・生産性や保守性の向上 ・設計レベルの欠陥を防ぐ ・成果物の均質化 共通のロジックをフレームワークが実装済みのため、これらが実現できます。このページにJerseyを使用してつくった、RESTfulなWebサービスクラスのサンプルがあります。これをJerseyを使用せずにつくったとしたら、こんなに短い行数では実現できないことはお分かりいただけると思います。また、JerseyはJava EEの標準仕様の一つであるJAX-RSを実装しているため、Jerseyを使用して開発されたWebAPIも独自仕様ものではなく、より標準的な仕様のものになると思います。 ただし、フレームワークは開発の規模が大きくなるほど効力を発揮するので、「業務で社内でつかう簡単なWebアプリケーション」であれば、Jerseyを使わないのも選択肢としてはアリかと思います。 [FYI] ちなみにTomcat 8.0では、以下のチェック処理が追加されているため、JSPに対するDELETEメソッドなどはエラーになります。サーブレットではなく、JSPで作ろうと考えている場合は、ご注意を。 このチェックが追加されたのは、JSP 2.3仕様で追加された以下の仕様の#4が関係しています。