Jakarta RESTful Web Servicesサポート/Jakarta RESTful Web Services/HTTPメッセージングの機能比較

ここでは、以下の機能比較を示す。

補足

NablarchのJakarta RESTful Web ServicesサポートとHTTPメッセージングのみ、表内のマークをクリックすると、解説書の説明ページに遷移する。

機能比較(○:提供あり △:一部提供あり ×:提供なし -:対象外)
機能 Jakarta RESTful
Web Services
サポート
HTTP
メッセージング
Jakarta RESTful
Web Services
リクエストとリソースメソッドのマッピング △ ○ ○
リクエストとパラメータのマッピング △ × [1] ○
HTTPメソッドのマッチング △ × [1] ○
メディアタイプに応じた
リクエスト/レスポンスの変換
△ × [1] ○
エンティティのバリデーション ○ ○ ○
リソースクラスへのインジェクション
(Jakarta Contexts and Dependency Injection)
× [2] × [2] ○
リクエスト/レスポンスに対するフィルタ × [3] × [3] ○
ボディの読み書きに対するインターセプタ × [4] × [5] ○
クライアントAPI × [6] ○ ○
非同期処理 × [7] × [7] ○
エラー時ログ出力 ○ ○ -
リクエストボディの最大容量チェック × [8] ○ -
証跡ログの出力 × [9] ○ -
再送制御 × [9] ○ -
サービス提供の可否チェック × [10] × [10] -
トランザクション制御 × [11] × [11] -
業務処理エラー時のコールバック × [12] ○ -
[1](1, 2, 3) HTTPメッセージングはRESTを考慮した作りになっていない。RESTfulウェブサービスには、Jakarta RESTful Web Servicesサポートを使用する。
[2](1, 2) Jakarta RESTful Web ServicesサポートとHTTPメッセージングは、Nablarchのウェブアプリケーションとして動作するため、Jakarta Contexts and Dependency Injectionは使用できない。
[3](1, 2) リクエスト/レスポンスに対するフィルタを作りたい場合は、ハンドラを作成する。
[4]ボディの読み書きに対するインターセプタを作りたい場合は、Jakarta RESTful Web ServicesサポートのBodyConverterを作成する。
[5]ボディの読み書きにはNablarchのデータフォーマットを使用している。変更したい場合は、データフォーマットのDataRecordFormatterを作成する。
[6]Jakarta RESTful Web Servicesクライアントが必要な場合は、Jakarta RESTful Web Servicesの実装(JerseyやRESTEasyなど)を使用する。
[7](1, 2) サーバサイドで非同期処理が必要になる要件がないと想定している。要望があれば対応を検討する。
[8]ウェブサーバやアプリケーションサーバにあるリクエストサイズをチェックする機能を使用する。
[9](1, 2) アプリケーションごとに要件が異なると想定している。アプリケーションで設計/実装する。
[10](1, 2) Nablarchにあるサービス提供可否チェックがアプリケーションの要件にマッチする場合はそれを使用する。マッチしない場合は、アプリケーションで設計/実装する。
[11](1, 2) Nablarchにあるトランザクション管理を使用する。
[12]エラー処理は共通化し、JaxRsResponseHandlerをカスタマイズすることを想定している。業務処理で個別にエラー処理をしたい場合は、リソースメソッドにてtry/catchを使用する。