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を使用する。 |