Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- re.split
- Coroutine
- Spring Boot
- 백준 16235
- MSA
- Spring
- springboot
- 웹어플리케이션 서버
- 백준 19238
- Kotlin
- java 기술면접
- 백준 16236
- MySQL
- JPA
- 파이썬
- with recursive
- JVM
- 프로그래머스
- 백준 17626
- 백준 16719
- spring security
- 백준 파이썬
- spring oauth
- 백준 17779
- java
- 프로래머스
- sql 기술면접
- spring cloud
- 백준
- 백준 15685
Archives
- Today
- Total
시작이 반
[Spring] 5. API 본문
SMALL
강의 참고 : www.inflearn.com/roadmaps/373
정적 컨텐츠 방식을 제외하면 view를 찾아서 템플릿 엔진을 통해 화면을 렌더링해서 HTML을 웹브라우저에 넘겨주는 방식과 API를 사용하는 방식이 있다.
1. HTML로 내릴 것이냐
2. API라는 방식으로 데이터를 바로 내릴 것이냐
@ResponseBody
- @ResponseBody를 사용하면 뷰 리졸버(viewResolver)를 사용하지 않음
- 대신에 HTTP의 BODY (통신 프로토콜의 BODY) 에 문자 내용을 직접 반환(HTML BODY TAG를 말하는 것이 아님)
@GetMapping("hello-string")
@ResponseBody
public String helloString(@RequestParam("name") String name){
return "hello " + name;
}
소스를 확인해보니 html태그가 없고 문자 그대로 내려왔다.
return한 값이 그대로 내려왔다.
데이터를 달라고 할때 API방식을 많이 사용한다.
@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;
}
}
객체를 return 값으로 주게되면
json형식(key와 value로 이루어짐) 으로 바껴서 보여지게 된다.
@ResponseBody 사용원리
- @ResponseBody가 있으면
- HTTP의 BODY에 문자 내용을 직접 반환
- viewResolver 대신에 HttpMessageConverter가 동작
- 기본 문자처리: StringHttpMessageConverter
- 기본 객체처리: MappingJackson2HttpMessageConverter
- byte 처리 등등 기타 여러 HttpMessageConverter가 기본으로 등록되어 있음
LIST
'Programming > Spring' 카테고리의 다른 글
[Spring] 7. 회원 관리 예제(회원 서비스 개발, 테스트 케이스) (0) | 2021.01.19 |
---|---|
[Spring] 6. 회원 관리 예제(회원 도메인, 리포지토리 만들기, 테스트케이스) (0) | 2021.01.19 |
[Spring] 4. 정적 컨텐츠, MVC와 템플릿 엔진 (0) | 2021.01.18 |
[Spring] 3. View 환경 설정 (0) | 2021.01.09 |
[Spring] 2. 라이브러리 (0) | 2021.01.08 |