** 인프런 [스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술] 강의를 기반으로 작성합니다.
API
만약 안드로이드, 아이폰 클라이언트와 개발 > json이란 데이터구조 포맷으로 클라이언트에게 데이터를 전달함 view, js , react 등등
-> 화면은 클라이언트가 알아서 내리기서버끼리 통신할때는 데이터흐름만이 중요해서 그때 사용할 수 도 있음
@ResponseBody 문자 반환
- viewResolver를 사용하지 않는다.(MVC 패턴과의 차이점)
- 대신, http에서 body부에 데이터를 직접 넣어준다는 의미
@Controller
public class HelloController {
@GetMapping("hello-string")
@ResponseBody
public String helloString(@RequestParam("name") String name) {
return "hello" + name;
}
}
MVC패턴과의 차이점
API : view가 없기에 데이터가 그대로 구성 ↔ MVC 패턴 : view에서 직접 조작해서 화면 구성
@ResponseBody 객체 반환
- 객체가 JSON 형태로 변환된다.
@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;
}
}
}
Java는 getter & setter를 사용한다.
Java Bean 규약 (표준방식)
메소드를 통해서 접근하기 (=프로퍼티 접근 방식)
> API 구조화
ResponseBody가 있다면, 객체 그대로를 넘긴다.
문자라면 http 응답 값에 넣었으면 됐는데,
객체가 오면, json방식으로 데이터를 만들어서 http응답에 반환할 것이다.
이전 MVC 구조에서 Controller가 viewResolver에게 데이터를 전달했던 것과 달리
API 구조에서는 HttpMessagaeConverter가 작동한다.
[HttpMessagaeConverter 의 2가지 Converter]
단순 문자 : StringConverter가 작동
단순 객체 : JsonConverter가 작동 -> Json 스타일로 변경해서 웹브라우저 또는 서버에 응답해줌
'BACKEND > JAVA & SPRING' 카테고리의 다른 글
JPA (1) | 2023.05.08 |
---|---|
[J2KB] 회원관리 (1) | 2023.02.17 |
[J2KB] MVC와 템플릿 엔진 (1) | 2023.02.10 |
[J2KB] 정적 컨텐츠 (0) | 2023.02.10 |
[J2KB] Spring View 환경설정 (2) | 2023.02.03 |