【Java】JAX-RS

Javaで開発しているけど、よく知らないJAX-RS

以下のページを読んでみた。

JAX-RS入門および実践

目次

P4.JAX-RSの概要
P5.JAX-RSとは
P6.JAX-RS/Servlet/JSF比較
P13.JAX-RS/Servlet/JSFまとめ

P14.JAX-RSの仕様について
P15.JAX-RSアプリケーションの構成要素
P17.リソースクラス
P20.パスのマッピング
P22.パラメータのマッピング
P23.クエリパラメータとパスの一部
P24.Matrix URI
P25.リクエストヘッダ、Cookie
P26.フォームコントロールの値
P27.バリューオブジェクトで受け取る
P28.引数に使えるバリューオブジェクト
P29.既存のクラスを引数に使いたい場合
P31.エンティティボディを受け取る
P33.XMLPOJOで受け取る
P35.JSONPOJOで受け取る

P38.リクエストを処理する流れ
P39.1. リクエストを受け付ける
P40.2. フィルタリング(マッチング前)
P41. 例:HTTPメソッドを上書きする
P42.3. リソースメソッドの決定
P43.4. フィルタリング(マッチング後)
P44.5. エンティティボディを加工
P45. 例:複号化するReaderInterceptor
P46.6. エンティティボディの変換
P47. 例:エンティティボディをPropertiesに変換するMessageBodyReader
P48.7. リソースメソッドを実行
P49.8. レスポンスのフィルタリング
P50. 例:空のリストだったら204 No Contentを返すContainerResponseFilter
P51.9. 戻り値の変換
P52. 例:暗号化するWriterInterceptor
P53.10. エンティティボディの書き出し
P54. 例:Propertiesをエンティティボディに書き出すMessageBodyWriter
P55.11. レスポンスを返す

P56.例外ハンドラー
P57.ExceptionMapper

P58.アプリケーション定義
P59.Application
P60.例:Applicationサブクラス
P61.Java EE環境でのApplicationサブクラス

P62.クライアントAPI
P63.クライアントAPI ビルダーパターンで書けるHTTPクライアント

P67.実践の話
P69.認証
P71.レルム認証の手順
P73.レルム認証への期待

P74.JAX-RSのフィルターで認証してみる
P75.例:Basic認証するContainerRequestFilter
P76.JAX-RSのフィルターで認証するメリット
P77.フィルターの適用方法
P79.認証まとめ

P80.バリデーション
P82.JAX-RSのバリデーション事情
P83.例:引数を直接バリデーションする
P84.例:引数のフィールドをバリデーションする
P85.バリデーションでinvalidだった場合
P86.例:エラーメッセージを返すExceptionMapper
P87.バリデーションまとめ

P88.宣言的トランザクション P89.宣言的トランザクションとは P90.リソースメソッドで宣言的トランザクションをする方法 P91.例:宣言的トランザクション
P93.リソースメソッドで宣言的トランザクションをした場合……
P94.改善案
P95.例:ビジネスロジック
P97.宣言的トランザクションまとめ

P99.大量データのダウンロード
P100.コード例
P101.問題点
P102.改善案
究極のファイルダウンロード - Qiita
P103.非同期ダウンロード
P104.タスクをワーカーに投げる例
P105.でもJava EEでは……
P106.そこで
P107.例:ManagedExecutorService
P108.※注意点
P109.ファイル経由
P110.ファイルの返し方 InputStreamをそのまま返す
P111.ファイルの返し方 StreamingOutputを使う
P112.ダウンロードまとめ

P114.MVCと状態の持ち方
P115.JAX-RSで画面有りのアプリケーションを作る方法
P116.Jersey MVC
Jerseyとは - Qiita
P117.Jersey MVCに対する個人の感想
P118.MVC 1.0
P119.状態の持ち方
P120.HttpSessionを使う?
P121.コード例
P123.おすすめの方法
P124.例:リソースクラス
P125.例:状態を持つクラス
P126.メリット
P127.MVCと状態まとめ

P129.テストしたい対象
P130.Jersey Test Framework
P131.例:Jersey Test Framework
P132.テストしやすいコードのポイント
P133.テスト時のDIについて
P134.例:リソースクラス
P135.コード例
P136.DIを伴うテストのポイント
P137.テストコードまとめ
P138.全体のまとめ