들어가며
API(Application Programming Interface)
“API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다.”
쉽게 말해 프로그램 간의 데이터 정보를 주고받을 수 있도록 도와주는 매개체 정도로 생각을 하면 될듯하다.
이는 JSON이라는 데이터 표준 포멧을 통하여 주고받는다.
@ResponseBody?
- 뷰 리졸버를 사용하지 않고, HTTP에 직접 return값을 보내겠다는 의미
- Body는 html에서의 body를 의미하는 것이 아니라, HTTP에서의 BODY를 의미한다.
- HTTP = HTTP Header + HTTP Body
직접 실행하여 차이를 확인해보자.
1. 이전에 작업해놓은 템플릿 엔진을 활용한 mvc모델
2. @ResponseBody를 이용
차이가 없어 보이지만 페이지 소스코드 보기를 통해 뜯어보자.
1. 이전에 작업해놓은 템플릿 엔진을 활용한 mvc모델
2. @ResponseBody를 이용
1번을 보면 view를 통하여 html 코드 안에 우리가 parameter로 넘겨준 name이 들어가 있지만,
2번은 반환된 문자 그 자체가 출력되어 나온 것임을 확인할 수 있다.
이제 JSON을 통한 API를 직접 사용해보자.
- static으로 Hello라는 객체를 만들어주었다. Getter / Setter 설정
- 이제 helloApi클래스에서 새로운 Hello객체 hello를 만들어 우리가 parameter로 입력받는 "name"을 setter를 통해 hello에 넣어주고 그 객체 자체를 return 시킨다.
현재 출력된 Key - Value 쌍으로 묶여있는 데이터 포맷이 바로 JSON이다.
@ResponseBody를 사용하고 객체를 반환하면 JSON으로 반환되도록 기본 설정되어있다.
- @ResponseBody를 사용
- HTTP의 BODY에 문자 내용을 직접 반환
- viewResolver 대신 HttpMessageConverter가 동작
- 기본 문자처리 : StringHttpMessageConverter
- 기본 객체 처리 : MappingJackson2HttpMessageConverter
- byte 처리 등등 기타 여러 HttpMessageConverter가 기본으로 등록되어 있음.
xml라이브러리를 통해 JSON말고 Xml형태로 반환하게 만들 수 도 있다. 하지만 기본적으로는 JSON
반응형
'Spring > Introduction to Spring' 카테고리의 다른 글
회원 관리 예제 - 1. 비지니스 요구사항 정리 (0) | 2021.02.16 |
---|---|
회원관리 예제 만들어보기 (0) | 2021.02.16 |
MVC와 템플릿 엔진 (0) | 2021.02.15 |
정적 컨텐츠 (0) | 2021.02.15 |
빌드하고 실행하기 (0) | 2021.02.15 |