15

開発中の Java Web アプリケーション用の軽量バージョンの REST を探しています。

RESTlet (www.restlet.org) と Struts 2 用の REST プラグインを調べましたが、まだ決めていません。RESTletの方が軽いように見えるので、私はRESTletに傾いています。

フレームワークなしで、またはフレームワークを使用してRESTfulレイヤーを実装した人はいますか?

新しい Web レイヤーが原因で発生したパフォーマンスの問題はありますか?

REST の導入により、プロジェクトに管理不能または不合理な複雑さが追加されましたか? (ある程度の複雑さは理解できますが、私が言いたいのは、REST を追加するためだけに設計をやり過ぎているということです)

4

6 に答える 6

19

私は JAX-RS の大ファンです。JAX-RS はその仕様で素晴らしい仕事をしたと思います。私は多くのプロジェクトでそれを使用しており、一緒に仕事をするのは楽しいものでした.

JAX-RS を使用すると、URI マッピング、HTTP メソッド、およびコンテンツ ネゴシエーションを処理する単純なアノテーションを備えた POJO を使用して REST リソースを作成できます。これらはすべて依存性注入とうまく統合されています。学ぶべき複雑な API はありません。REST の中心的な概念 (URI、ヘッダー/応答コード、およびコンテンツ ネゴシエーション) だけが必要です。FWIW JAX-RS は、コントローラーの観点からは非常に Rails っぽいです。

そこには多くの JAX-RS 実装があります。議論については、このスレッドを参照してください。

私の個人的な推奨事項は、Jerseyを使用することです。その背後には最大かつ最も活発なコミュニティがあり、執筆時点で最高の機能 (WADL サポート、暗黙的なビュー、Spring 統合、優れた REST クライアント API) を備えています。ただし、JBoss/SEAM を使用している場合は、RESTeasy の統合の方が少し優れていることに気付くかもしれません。

于 2008-09-17T11:26:03.483 に答える
8

私はRestletの大ファンですが、通常、RESTfulWebサービスを主な役割とするアプリを実装するために使用します。既存のアプリケーションにRESTfulAPIを追加しようとしているようです。その場合は、JAX-RS(またはEnunciate)のアノテーションベースのアプローチがプロジェクトにより適している可能性があります。

Restletに関しては、私は開発者とコミュニティに非常に感銘を受けたと言えます。彼らは非常に活発で、積極的で、反応が良く、安定した、効率的で、信頼性が高く、効果的なフレームワークに取り組んでいます。フレームワークの私の唯一のお気に入りの側面は、それがRESTパラダイムのゼロからの実装であるということです。したがって、Restletアプリの外部APIと内部実装の間にインピーダンスの不一致はありません。また、柔軟性が非常に高いことも気に入っています。JBoss、Tomcat、JettyなどのJavaアプリケーションコンテナ/サーバー内で実行することも、HTTPサーバーライブラリが組み込まれたスタンドアロンで実行することもできます。

于 2008-09-18T20:03:02.843 に答える
3

まあ、私はEnunciateをかなり使ってきました。単純な注釈を使用して、REST および/または SOAP エンドポイントを提供します。

http://enunciate.codehaus.org

さらに、Ryan Heaton も常に最高のサポートを提供してきました。

于 2008-09-15T19:59:51.923 に答える
3

RESTful サービスにアクセスするための新しい JCP API があることはご存知でしょう。

JAX-RS JCP311 https://jsr311.dev.java.net/

オープンソース版は Project Jersey と呼ばれる

于 2008-09-16T18:25:49.457 に答える
1

私はgliffy.comのRESTAPIに取り組んでおり、最終的には独自のAPIを使用することになりました。Struts 2、Spring、またはその他のフレームワークを導入する必要はありませんでした。私はRESTLetを見て、それが信じられないほど混乱し、複雑すぎることに気づきました。

ApacheにはJAX-RS仕様の実装がありますが、それは最終化されておらず、いくつかの奇妙な点もあります。ソリューションのオープンソース化を暫定的に計画していますが、それは数か月間ではありません。

ただし、自分でロールするのは簡単です。サーブレット仕様は必要なものすべてを提供し、Hibernateを介してデータベースに簡単に接続できます(EJB3を使用せずにJPAを設定する方法についてはhttp://www.naildrivin5.com/daveblog5000/?p=39を参照してください)。

于 2008-09-15T20:02:06.817 に答える
1

restlet は本当にエレガントなアーキテクチャであることがわかりました。私は .net の世界で働いているので、それは選択肢ではありませんでしたが、restlet と同じ基本原則に従って独自のフレームワークを構築することができました。WCF コントラクト ベースの SOA アプリケーションを REST ベースのアプリケーションに変換すると、アプリケーションが大幅に簡素化されることがわかりました。

于 2008-09-15T20:41:00.187 に答える