3. ウェブサービス編¶
本章ではNablarchアプリケーションフレームワークを利用してウェブサービスを開発するために必要となる情報を提供する。
Nablarchでは、以下2種類のRESTfulウェブサービス用のフレームワークを提供している。
これらのどちらのフレームワークを使用してもウェブサービスを構築することができるが、 以下の理由により RESTfulウェブサービス編 を使用してウェブサービスを作成することを推奨する。
- 理由
RESTfulウェブサービス編 では、 JSR 339(外部サイト、英語) で規定されている一部のアノテーションを使用して容易にウェブサービスを構築することが出来る。
一方、 HTTPメッセージング編 はボディ部やHTTPヘッダー、例外制御に以下の制約があり柔軟な設計及び実装ができない。
Nablarchの制御用領域がHTTPヘッダやボディ部に必要となる。
既に構築済みの外部システムと連携するようなウェブサービスを構築する場合に設計及び実装の難易度が高くなる。
レスポンスヘッダに設定する項目を容易にカスタマイズ出来ない。
レスポンスヘッダーに設定される値 に記載がある通り、レスポンスヘッダの変更したい場合はハンドラ自体を差し替える必要がある。
汎用データフォーマット 機能に依存している。
フォーマット定義ファイルを作成する必要あり開発コストが高くなる。またカスタマイズが容易でない。 また、入出力データをMapオブジェクトで扱う必要があり、実装ミスを起こしやすい。
リクエストボディのパース時の例外が全て単一の例外クラスにマッピングされるため細かく例外ハンドリングすることができない。
パース中の例外は全て MessagingException として送出されるため、根本原因を元に細かな処理制御を行うことが出来ない。
ちなみに
RESTfulウェブサービス編 と HTTPメッセージング編 で提供している機能の違いは、JAX-RSサポート/JSR339/HTTPメッセージングの機能比較 を参照。