Spring/Introduction to Spring

API

민철킹 2021. 2. 16. 17:59

들어가며

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