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