API
@ResponseBody λ¬Έμ λ°ν
@Controller
public class HelloController {
@GetMapping("hello-string")
@ResponseBody
public String helloString(@RequestParam("name") String name) {
return "hello " + name;
}
}
-
@ResponseBody
λ₯Ό μ¬μ©νλ©΄λ·° 리쑸λ²('viewResolver')
λ₯Ό μ¬μ©νμ§ μμ΅λλ€- λμ HTTPμ BODYμ λ¬Έμ λ΄μ©μ μ§μ λ°νν©λλ€(HTML BODY TAGλ₯Ό λ§νλ κ²μ΄ μλλλ€.)
μ€ν
http://localhost:8080/hello-string?name=spring
@ResponseBody κ°μ²΄ λ°ν
@Controller
public class HelloController {
@GetMapping("hello-api")
@ResponseBody
public Hello helloApi(@RequestParam("name") String name) {
Hello hello = new Hello();
hello.setName(name);
return hello;
}
static class Hello {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
}
-
@ResponseBody
λ₯Ό μ¬μ©νμ, κ°μ²΄λ₯Ό λ°ννλ©΄ κ°μ²΄κ° JSONμΌλ‘ λ³νλ©λλ€.
μ€ν
- http://localhost:8080/hello-api?name=spring
@ResponseBody μ¬μ© μ리
- μΉ λΈλΌμ°μ μμ
localhost:8080/hello-api
λ‘ μ μμ μλν©λλ€. - ν°μΌ λ΄μ₯ μλ²μμ β
hello-api
κ° μμ΄β νκ³ μ€νλ§μ λμ§λλ€. - μ€νλ§μ β
hello-api
κ° μλ€?! μ΄? κ·Όλ°@RespinseBody
μ΄λ Έν μ΄μ μ΄ λΆμ΄μλ€!!β νκ³ μΈμν©λλ€.- μ΄λ° μ΄λ Έν μ΄μ μ΄ λΆμ΄μμ§ μμλ€λ©΄ viewResolverμκ² λμ§λλ€. -> βλμκ² λ§λ ν νλ¦Ώμ μ°Ύμ λλ €μ€β
-
@ResponsBody
κ° μλ€λ©΄ HTTP μλ΅μ κ·Έλλ‘ λ겨μΌκ² λ€ νκ³ λμν©λλ€.- μ¬κΈ°μ λ¬Έμκ° μ€λ©΄ λ°λ‘ λ¬Έμλ₯Ό λλ €μ€λλ€.
- νμ§λ§ κ°μ²΄κ° μ€λ©΄ κΈ°λ³Έ λν΄νΈμΈ
JSON
λ°©μμΌλ‘ λ°μ΄ν°λ₯Ό λ§λ€μ΄μHTTP μλ΅
μ λ°νν©λλ€. -> κΈ°λ³Έ μ μ±
-
@ResponseBody return: hello(name: spring)
μ κ°μ²΄λ₯Ό λ겨μ€λλ€. κ·Έλ¬λ©΄ βHttpMessageConverter
β κ° λμν©λλ€. - λ§μ½ λ°ννλ μμ΄κ° λ¨μ λ¬ΈμμΌ κ²½μ° β
StringConverter
β κ° λμν©λλ€. - κ·Έκ² μλκ³ λ°ννλ μμ΄κ° κ°μ²΄μΌ κ²½μ° β
JsonConverter
β κ° λμν©λλ€. - κ²°κ΅ JSON νμμΌλ‘ λ³νν κ²μ μμ²ν μΉ λΈλΌμ°μ μκ² λ³΄λ΄μ€λλ€.
μ 리
-
@ResponseBody
λ₯Ό μ¬μ©- HTTPμ BODYμ λ¬Έμ λ΄μ©μ μ§μ λ°ν
-
viewResolver
λμ μhttpMessageConverter
κ° λμ - κΈ°λ³Έ λ¬Έμμ²λ¦¬:
StringHttpMessageConverter
- κΈ°λ³Έ κ°μ²΄μ²λ¦¬:
MappingJackson2HttpMessageConverter
- byte μ²λ¦¬ λ±λ± κΈ°ν μ¬λ¬ HttpMessageConverterκ° κΈ°λ³ΈμΌλ‘ λ±λ‘λμ΄ μμ
μ°Έκ³ : ν΄λΌμ΄μΈνΈ HTTP Accept ν€λμ μλ²μ 컨νΈλ‘€λ¬ λ°ν νμ μ 보 λ€μ μ‘°ν©ν΄μ
HttpMessageConverter
κ° μ νλ©λλ€.