第2章 Jakarta RESTful Web Services Web サービスの開発
Jakarta RESTful Web Services は RESTful Web サービスの Jakarta EE API です。アノテーションと REST (Representational State Transfer) を使用して Web サービスを構築するためのサポートを提供します。これらのアノテーションは、Java オブジェクトを Web リソースにマッピングするプロセスを簡素化します。
RESTEasy は Jakarta RESTful Web Services の Red Hat JBoss Enterprise Application Platform 7 実装です。JBoss EAP 7.3 以降は、Jakarta Enterprise Web Services 1.4 および Jakarta RESTful Web Services 2.1 Jakarta EE 仕様に準拠しています。また、仕様に追加機能も提供します。
Jakarta RESTful Web Services を初めて使用する場合は、Red Hat JBoss Enterprise Application Platform 7 に同梱される helloworld-rs、jaxrs-client、および kitchensink クイックスタートを参照してください。
JBoss EAP は resteasy-crypto、resteasy-yaml-provider、および jose-jwt モジュールをサポートしません。
2.1. Jakarta RESTful Web Services アプリケーション リンクのコピーリンクがクリップボードにコピーされました!
プロバイダーと Web リソースを作成する際に、それらを宣言するには以下のオプションを使用できます。
-
web.xmlファイルなしでjavax.ws.rs.core.Applicationの簡単なサブクラス。 -
web.xmlファイルの使用。 -
Javax.ws.rs.core.Applicationのサブクラス化とカスタム実装の提供。
2.1.1. javax.ws.rs.core.Application の単純なサブクラス化 リンクのコピーリンクがクリップボードにコピーされました!
javax.ws.rs.core.Application クラスを使用して、これらのプロバイダーと Web リソースを宣言するサブクラスを作成できます。このクラスは、JBoss EAP に含まれる RESTEasy ライブラリーによって提供されます。
javax.ws.rs.core.Application を使用してリソースまたはプロバイダーを設定するには、拡張するクラスを作成して @ApplicationPath アノテーションを追加します。
例: アプリケーションクラス
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
@ApplicationPath("/root-path")
public class MyApplication extends Application
{
}
2.1.2. web.xml の使用 リンクのコピーリンクがクリップボードにコピーされました!
または、javax.ws.rs.core.Application を拡張するクラスを作成しない場合は、web.xml ファイルに以下を追加します。
例: web.xml
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<servlet>
<servlet-name>javax.ws.rs.core.Application</servlet-name>
</servlet>
<servlet-mapping>
<servlet-name>javax.ws.rs.core.Application</servlet-name>
<url-pattern>/root-path/*</url-pattern>
</servlet-mapping>
...
</web-app>
2.1.3. カスタム実装による javax.ws.rs.core.Application のサブクラス化 リンクのコピーリンクがクリップボードにコピーされました!
javax.ws.rs.core.Application をサブクラス化する場合、既存のメソッドのいずれかにカスタム実装を提供するよう選択できます。getClasses および getSingletons メソッドは、公開された Jakarta RESTful Web Services アプリケーションに含める必要があるクラスまたはシングルトンのコレクションを返します。
-
getClassesおよびgetSingletonsのいずれかが空でないコレクションを返す場合、これらのクラスとシングルトンのみが Jakarta RESTful Web Services アプリケーションで公開されます。 -
getClassesとgetSingletonsの両方が空のコレクションを返す場合、Web アプリケーションにパッケージ化されたすべてのルートリソースクラスおよびプロバイダーが Jakarta RESTful Web Services アプリケーションに含まれます。その後、RESTEasy はこれらのリソースを自動的に検出します。