JavaのRestful Webサービスチュートリアルへようこそ。 RESTはREpresentational State Transferの頭字語です。 残りの建築スタイル用のアプリケーション開発アクセスできるのです。 残りの建築様式は、2000年に彼の博士論文でロイ-フィールディングによって光をもたらされました。
Restful Web Services
Restful Web Servicesは、webサービスがリソースであり、Uriによって識別できるステートレスなクライアント-サーバー-アーキテクチャです。,
RESTクライアントアプリケーションでは、Http GET/POSTメソッドを使用してRestful webサービスを呼び出すことができます。 RESTは使用する特定のプロトコルを指定していませんが、ほとんどすべての場合、HTTP/HTTPS経由で使用されます。 SOAP webサービスと比較すると、これらは軽量であり、標準に準拠していません。 要求と応答には、XML、JSON、テキスト、またはその他のタイプのデータを使用できます。
Java RESTful WebサービスAPI
Java API for RESTful Webサービス(JAX-RS)は、REST webサービスを作成するためのJava APIです。, JAX-RSはアノテーションを使用して、webサービスの開発とデプロイを簡素化します。 JAX-RSはJDKの一部なので、注釈を使用するために何も含める必要はありません。
Restful Webサービスアノテーション
重要なJAX-RSアノテーションの一部は次のとおりです。
@Path
:クラスとメソッドの相対パスを指定するために使用されます。 Path注釈値をスキャンすることで、webserviceのURIを取得できます。,@GET
,@PUT
,@POST
,@DELETE
および@HEAD
:メソッドのHTTP要求タイプを指定するために使用されます。@Produces
,@Consumes
:要求と応答のタイプを指定するために使用されます。@PathParam
:メソッドパラメータをパス値にバインドするために使用されます。
Restful WebサービスとSOAP
- SOAPはプロトコルですが、RESTはアーキテクチャスタイルです。,
- ソープサーバとクライアントアプリケーションは密結合結合し、WSDLの契約ではありません契約RESTのwebサービスです。
- 学習曲線は、SOAP webサービスと比較してRESTにとって簡単です。
- REST webサービス要求と応答のタイプは、XML、JSON、テキストなどにすることができます。 一方、SOAPはXMLのみで動作します。JAX-RSはREST webサービス用のJava APIですが、JAX-WSはSOAP webサービス用のJava APIです。
REST APIの実装
JAX-RS APIには二つの主要な実装があります。,
- Jersey:JerseyはSunが提供するリファレンス実装です。 JerseyをJAX-RS実装として使用するには、webでそのサーブレットを構成する必要があります。xmlと必要な依存関係を追加します。 JAX-RS APIはJerseyではなくJDKの一部であるため、アプリケーションに依存関係jarを追加する必要があることに注意してください。
- RESTEasy:RESTEasyはJax-RS実装を提供するJBossプロジェクトです。
Java Restful Webサービスチュートリアル
Jerseyを使用してRestful webサービスを作成し、次にRESTEasyを使用してRestful webサービスを作成する方法を見てみましょう。, 次のメソッドをHTTP経由で公開し、Chrome Postman拡張機能を使用してこれらをテストします。,d>
ジャージー-サイドにおける新しいWebサービス
動きのあるwebプロジェクトに変換しまMavenの骨格をウェブサービス。, 下の図は、プロジェクト構造体の最終プロジェクト.
pomにあるJerseyの依存関係を見てみましょう。xmlファイル。
jersey-client依存関係を追加する必要はありませんが、Jerseyを使用してREST webサービスを呼び出すjavaプログラムを作成している場合は、必要です。
次に、配置記述子を見て、Webアプリケーションを作成するためにJerseyを構成する方法を学びましょう。jerseyをwebアプリケーションにプラグインするには、javaコードでJAX-RSアノテーションを使用する必要があります。, Initパラメーターcom.sun.jersey.config.property.packages
の値に注目して、webサービスのリソースとメソッドをスキャンするパッケージを提供します。
RESTモデルクラスの例
まず、アプリケーションデータ用のPerson
と、クライアントシステムに応答を送信するResponse
の二つのモデルbeanを作成します。 XML応答を送信するため、beanに注釈を付ける必要があります@XmlRootElement
、したがって、このクラスがあります。,
REST Webサービスチュートリアルサービス
URI構造に基づいて、以下はサービスインターフェイスと実装コードです。
Restful Webサービステスト
それで終わりです。 WARファイルとしてエクスポートし、Tomcat webappsディレクトリ内に配置するか、選択した他のコンテナにデプロイするだけです。
以下は、このwebサービスのPostman chrome拡張機能を使用して実行されるテストの一部です。 下の画像に示すように、要求ヘッダーにAcceptおよびContent-Type値を”application/xml”として提供する必要があることに注意してください。,
- getDummy
- add
- get
- getAll
- delete
jersey jax-rs実装を使用してwebサービスを作成するためのすべてです。 ほとんどのコードはJAX-RS注釈を使用しており、Jerseyは配置記述子と依存関係を介してプラグインされていることがわかります。,
RESTEasy RESTful Webサービスの例
Jerseyプロジェクトで開発されたすべてのビジネスロジックを使用しますが、同じプロジェクトに変更を加えるのではなく、新しいプロジェクトを作成しました。 動的webプロジェクトを作成し、Mavenプロジェクトに変換します。 次に、Person、Response、PersonService、およびPersonServiceImplのすべてのjavaクラスをコピーします。 以下は、すべての変更が完了した後の最終的なプロジェクトです。
PomのRESTEasy依存関係の下に追加します。xmlファイル。
以下はウェブです。Resteasyサーブレットを設定するxmlファイル。,
init-paramに注意してください。MyApp
クラスを値として提供していますが、ここではjavax.ws.rs.core.Application
クラスを以下に示すように拡張しています。
RESTEasy Webサービステスト
それで終わりです。 当社のwebサービスは、RESTEasy JAX-RSの実装で準備ができています。 以下は、Postman chrome拡張機能テストからの出力の一部です。,
- getDummy
- add
- get
Restful Webサービスのチュートリアルでは、Jax-RSアノテーションについて学び、Jax-RSアノテーションについて理解していただければ幸いですコードを再利用し、jerseyからresteasyに簡単に移行するのに役立つ標準apiを持つことの利点。