タグ付けされた質問 「jax-rs」

JAX-RS:RESTful Webサービス用のJava API。これは、RESTアーキテクチャスタイルに従ってWebサービスの作成をサポートするAPIです。

3
REST APIの設計-異なるパラメーターを使用して同じURLパターンでRESTを介してリソースを取得する
REST urlの設計に関連する質問があります。ここでいくつかの関連する投稿を見つけました:同じリソースのさまざまなRESTful表現とここ:さまざまなフィールドによるGETリソースへのRESTful urlですが、ベストプラクティスとその理由についての応答は完全には明確ではありません。ここに例があります。 「ユーザー」リソースを表すためのREST URLがあります。IDまたはメールアドレスを使用してユーザーを取得できますが、URL表現はどちらも同じままです。多くのブログや本を読んでいると、人々はさまざまな方法でこれを行っていることがわかります。例えば 本やstackoverflowのどこかでこの実践を読んでください(私は再びリンクを見つけることができないようです) GET /users/id={id} GET /users/email={email} 多くのブログでこのプラクティスを読んでください GET /users/{id} GET /users/email/{email} クエリパラメータは通常、URLで表されるリソースの結果をフィルタリングするために使用されますが、この方法も使用されているのを見てきました GET /users?id={id} GET /users?email={email} 私の質問は、これらすべてのプラクティスの中で、APIを使用する開発者にとって最も理にかなうものとその理由は何ですか?REST urlの設計と命名規則に関しては、明確なルールはないと思いますが、開発者がAPIをよりよく理解できるようにするためにどのルートを取るべきかを知りたかっただけです。 すべての助けに感謝します!


2
なぜJAX-RS / Jerseyを使用するのですか?
申し訳ありませんが、この質問はばかげているように聞こえますが、Jerseyを使用してRESTfulサービスのいくつかを開発した後、私は自分自身に質問しました-RESTが単なるアーキテクチャであり、SOAPのようなプロトコルではない場合、なぜJAX-RSのような仕様が必要なのですか? 私は実際に「HTTPを介したサーブレットとRESTfulサービスの違いは何ですか」などの質問をグーグルで検索し、コミュニティの回答を要約すると、次のようになりました。 (Jerseyでの)RESTfulサービス開発は、本質的にサーブレットを使用するアーキテクチャです。 ジャージーのようなJAX-RS準拠のツールは、XML / JSONデータのマーシャリングとアンマーシャリングを簡単に提供し、開発者を支援します。 RESTは、通常のサーブレットよりもはるかに効率的な方法でGET / POST / PUT / DELETEを使用するのに役立ちます。 これらの回答によると、JAXB(自動シリアル化を処理するため)を使用するサーブレットを作成し、サーブレットコードでGET / POST / PUT / DELETEを効率的に使用する場合、Jerseyのようなツールを使用しないと思います。したがって、JAX-RS。 私はこの声明を渡すのがひどく間違っていることを知っています、私を訂正してください。 PS:この疑問は、PHPでRESTfulサービスを開発しなければならなかったときに実際に起こりました。いくつかのRESTfulPHPコードを調べた後、XML / JSONを処理するためのいくつかのヘルパーメソッドを備えた、まったく同じ古いPHPスクリプトであることに気付きました。
84 rest  jersey  jax-rs 

10
JAX-RS Webサービスをテストしますか?
私は現在、JAX-RS(RESTfulWebサービス用のJavaAPI)ベースのWebサービスの自動テストを作成する方法を探しています。 基本的に、特定の入力を送信し、期待される応答が得られることを確認する方法が必要です。JUnitを介してこれを実行したいのですが、それをどのように実現できるかわかりません。 Webサービスをテストするためにどのようなアプローチを使用していますか? 更新: entzikが指摘したように、Webサービスをビジネスロジックから切り離すことで、ビジネスロジックの単体テストを行うことができます。ただし、正しいHTTPステータスコードなどもテストしたいと思います。

6
アノテーションのみ(web.xmlなし)を使用してJAX-RSアプリケーションをセットアップするにはどうすればよいですか?
アノテーションのみを使用してJAX-RSアプリケーションをセットアップすることは可能ですか?(サーブレット3.0およびJAX-RSジャージー1.1.0を使用) 試してみましたが、運がありませんでした。いくつかを使用するweb.xml必要があるようです。 構成A(機能していますが、web.xml構成があります) web.xml ... <servlet> <servlet-name>org.foo.rest.MyApplication</servlet-name> </servlet> <servlet-mapping> <servlet-name>org.foo.rest.MyApplication</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> ... Java @ApplicationPath("/") public class MyApplication extends Application { ... } 構成B(機能しない、例外がスローされる) @ApplicationPath("/") @WebServlet("/*") // <-- public class MyApplication extends Application { ... } 後者は、アプリケーションがサーブレットのサブクラスになることを主張しているようです(例外は当て推量を残しません) java.lang.ClassCastException: org.foo.rest.MyApplication cannot be cast to javax.servlet.Servlet 質問 web.xml定義が機能したのに、アノテーションが機能しなかったのはなぜですか?違いは何ですか? それを機能させる方法はありますか?たとえば、web.xmlのないJAX-RSアプリケーションがありますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.