クライアントとサーバーの両方の REST フレームワークを Java で実装するのに最適なフレームワークは何ですか? 使いやすいソリューションを見つけるのに少し苦労しています。
更新: Jersey と Restlet はどちらも良い選択肢のようです。おそらく Restlet を使用しますが、両方を試してみます。
クライアントとサーバーの両方の REST フレームワークを Java で実装するのに最適なフレームワークは何ですか? 使いやすいソリューションを見つけるのに少し苦労しています。
更新: Jersey と Restlet はどちらも良い選択肢のようです。おそらく Restlet を使用しますが、両方を試してみます。
ジャージは両方にとって本当に簡単です。Web サービスを作成するには、注釈を使用します。
@Path("/helloworld")
public class HelloWorldResource {
// The Java method will process HTTP GET requests
@GET
// The Java method will produce content identified by the MIME Media
// type "text/plain"
@Produces("text/plain")
public String helloWorld() {
// Return some cliched textual content
return "Hello World";
}
}
クライアントの場合:
Client client = Client.create();
WebResource webResource = client.resource("http://localhost:8080/helloworld");
String s = webResource.get(String.class);
System.out.println(s); // prints Hello World
Restletは、探しているものを提供する必要があるように思えます。
ドロップウィザードも見てください。
Restlet は、クライアント側とサーバー側の両方で、2.0 バージョンの注釈もサポートしています。JAX-RS API も拡張機能としてサポートされています。
サーバー側の簡単な例を次に示します。
public class HelloWorldResource extends ServerResource {
@Get
public String represent() {
return "hello, world";
}
}
クライアント側:
// Outputting the content of a Web page
new ClientResource("http://www.restlet.org").get().write(System.out);
詳細なドキュメントについては、このページを確認してください。
JBoss の新しいRESTEasyライブラリがあります。最初の発売以来、急速に開発されているようです。それが良いかどうかはわかりません。それは私の「チェックアウト」リストにあります。
CXF JAX-RS 実装を見ることができます。その機能の完全なリストについては、JAX-RS の CXF Web サイトを確認してください。プロジェクトの背後にあるコミュニティは非常に活発であるようです (2013 年 7 月)。その指標は、 CXF メーリング リストの 1 日あたりのメッセージ数です 。
個人的には使用していませんが、一緒に仕事をしている一部のチームは Spring 3 MVC を使用しています。 Spring 3 の REST: @MVCは、良いブログ投稿の概要のように見えます。RESTful 機能には、「URI テンプレート」、「コンテンツ ネゴシエーション」、「HTTP メソッド変換」、「ETag サポート」などが含まれます。
編集: また、この質問を参照してください: MVC に基づいて REST をサポートする Java Web フレームワークを推奨できる人はいますか?
更新: Xydra Restless はメンテナンスされなくなりました +++ 「インスタンスの予約」機能がリリースされる前に Goolge AppEngine を使用している場合は、機能はほとんどありませんが高速にロードされるXydra Restlessを検討してください。
私は Apache wink をお勧めします。これはまだインキュベーション モードにある新しいフレームワークですが、非常に成熟していて高品質です。
http://incubator.apache.org/wink/
JAX-RS 仕様を実装し、REST 開発用のクライアントとサーバーの両方のフレームワークを備えています。Apache はこのプロジェクトの背後に立っています - それは常に良い兆候です (そして良いライセンス :-) )
このフレームワークで私が最も気に入っているのは、Spring との直感的な統合です。フレームワークを簡単に構成および拡張したい場合に非常に役立ちます。