1

私はJavaのWebサービスについて「何も」知らないので、最終的にはJavaでREST作業を行う必要があります。今週は、それを学習したいと思います。d :)ですから、私の質問は、最初にJavaWebサービスを学習する必要があるかどうかです。 REST Webサービスを学ぶことができますか?私が最初に学ぶ必要がある知識の前提条件のスタックは何ですか?とあなたの提案されたリソース。

ありがとう

4

2 に答える 2

2

Java Webサービスのものは、RESTサービスとわずかな関係しかありません。

どちらもWebの「リモートサービス」であるため、オブジェクトの表現、セキュリティ、エラー処理など、同じ種類の問題を共有します。

しかし、サービス定義(WSDL)、SOAP...などのWS-*の複雑さを学ぶ必要はありません。

JavaでのRESTとWSの小さな関係は、オブジェクトを「自動的に」XMLまたはJSONに変換する場合に発生します。JAX-RSに基づくJavaRESTフレームワークは、JAXB(Java XML Bindings)を使用してそれを行うことができるため、JavaWSフレームワークでも使用されるオブジェクト変換フレームワークです。ただし、そのオブジェクト変換を使用する必要もありません。

Apache CXFなどの一部のJAX-RS互換フレームワークは、JAX-WS(WebサービスのJava標準API)を実行するためにも使用できます。ただし、CXFのような一般的なサービスフレームワークは、学習する必要のない他の複雑さ(さまざまなトランスポートのサポートなど)に対処する必要があることに注意してください。

最初に何を学ぶ必要がありますか?

  • Javaサーブレット:サーブレットの専門家である必要はありませんが、RESTサービスはJavaサーブレットインフラストラクチャにマウントされており、それに関する知識が役立ちます。

  • 依存性注入(DI):データベースまたは他のサービスにアクセスするRESTリソースの実行を開始するとき、それを実行するためにいくつかのコラボレーターオブジェクトを渡す必要があります。ほとんどのフレームワークは、DIを使用してその問題を解決します。たとえば、ほとんどのJAX-RSフレームワークはSpringまたはGuiceで使用できます。

    ヒント: SpringやGuiceを使用している人をたくさん見つけました。チュートリアルでは、それが正しい方法であることが示されています。しかし、彼らは何が解決しようとしているのかを知らず、複雑で保守不可能なもので終わります。私の推奨事項は、DIフレームワークを使用する前に、まずその背後にある概念を学ぶことです。

  • (オプション)JavaScriptとAJAXを少し。WebページからRESTサービスを使用する場合は、それらがどのように使用されるかを学ぶことをお勧めします。

編集: Apache CXFへの言及を含め、特定の実装であるJerseyの代わりにJAX-RSという用語を使用します。

于 2012-06-30T14:57:14.090 に答える
1

ここにリチャードソンの本の良い要約があります: http://martinfowler.com/articles/richardsonMaturityModel.html ,

于 2012-06-30T16:48:45.517 に答える