MatsuoTech

技術メモとひとりごと。

Springboot浦島太郎

すっかり忘れていたので、思い出しておこう。

@Controller@RestController
@ControllerSSRのテンプレートのパスを返して画面遷移させたりするコントローラに付与する。
メソッドごとに@ResponseBodyを付ければ、Stringの値等をそのままBodyとして返すことができる。
@RestControllerはコントローラ全体に@ResponseBodyが適用された状態になる。 ユースケース考えると、@Controllerを使いつつ@ResponseBodyを部分的に使うみたいなことはありそう。

@Controller
public class Controller {

  @RequestMapping("view")
  public String view() {
    return "/index.html";
  }

  @RequestMapping("body")
  @ResponseBody
  public String body() {
    return "こんぬつわ";
  }

}
@RestController
public class Controller {
  
  @RequestMapping("body")
  public String body() {
    return "Hello";
  }
  
}

ResponseEntity<T>
ヘッダに要素を追加したい場合や、HTTPレスポンスを変更したい場合に使う。
HTTPレスポンスの細かい設定ができる。

return ResponseEntity.ok("TEST")

RestTemplate 他のAPIにアクセスするやーつ。

RestTemplate rest = new RestTemplate();
ResponseEntity<String> response = rest.getForEntity("URL", String.class);

で結果を取得できる。String以外のオブジェクトにもマッピングできる。 エラーハンドリングもう少し調べないといけないと思う。