RestTemplate
HTTPクライアント機能を提供するクラス
Templateという名前でわかるとおりインタフェースを提供している
実際にHTTPとやり取りするクラスを柔軟に切り替えられる
使うときはBean定義が必要
DIするときはインタフェースであるRestOperationsの方がよいらしい
RestTemplateではなく
HTTPリクエスト
RequestEntity
HTTPレスポンス
ResponseEntity
ヘッダー部はorg.springframework.http.HttpHeadersに変換される
ボディ部は任意のJavaBeansに変換される
p336
URIテンプレート
UriComponentBuilder
UriTemplate
エラーハンドリング
エラー系(HTTPステータスコードが400以上)の応答があったら例外発生
UnknownHttpStatusCodeException
HttpClientErrorException
HttpServerErrorException
これらの例外は実行時例外(RuntimeException)を継承しているため捕捉する義務はない
アプリケーションの要件に応じて補足して例外処理を行う必要がある
タイムアウトの設定もできる
5.17. RESTクライアント(HTTPクライアント) - TERASOLUNA
SimpleClientHttpRequestFactoryに設定値を設定しRestTemplateに渡す
設定できるタイムアウト
connectTimeout:サーバとの接続タイムアウト
readTimeout:レスポンスデータの読み込みタイムアウト
リトライ処理は?
共通処理はClientHttpRequestInterceptorで可能
例:BASIC認証の値をセット
5.2. RESTクライアント(HTTPクライアント) — TERASOLUNA Server Framework for Java (5.x) Development Guideline 5.8.1.RELEASE documentation
Spring Boot Features 15. Calling REST Services with RestTemplate
public.icon