유리쯔의일상 2023. 12. 27. 22:29
반응형

#김영한 #스프링 #Spring #인프런 #인프런수업


본 포스팅은 김영한선생님의
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB접근 기술
강의를 기반으로 작성되었습니다.

 

 

 

 

API 방식 이란

웹 애플리케이션에서 서버와 클라이언트 간의 통신을 위해
http프로토콜을 사용하여 데이터를 주고 받는 방식이다.
클라이언트가 특정 주소에 http요청을 보내면 서버가 이에 대한
응답을 데이터형식(JSON , XML)등으로 반환하는 구조로 되어있다
기존 정적컨텐츠와 MVC같은 경우 HTML로 렌더링하여 응답을 처리하는 것과
다르게 데이터를 반환하는 구조이다, 주로 서버간 통신에서 사용한다

 

 

 

RESTful

스프링의 API는 대부분 RESTful 원칙을 따른다
Representational State Transfer는 네트워크 아키텍처 원칙의 집합으로
자원(Resource)의 상태(정보)를 주고 받는 것을 표현하는 것에 초첨을 맞춘다
RESTful API는 HTTP메소드(GET/POST/PUT/DELETE등)을 사용하여
자원에 대한 CRUD 작업을 수행한다

 

 

 

RESTful의 데이터형식

API통신에서 주로 JSON을 사용하는데 예전엔 XML형식도 사용했다
스프링에선 @ResponseBody 어노테이션 또는 @ResponseEntity 객체를 통해
객체를 JSON/XML로 변환하여 반환한다

 

 

 

스프링 MVC

DispatcherServlet은 클라이언트의 HTTP요청을 적절한 컨트롤러로 라우팅한다
컨트롤러는 @RestController 어노테이션으로 표기한다
각 메서드는 @RequestMapping 또는 HTTP메소드별 어노테이션을 사용하여
엔드포인트로 매핑한다
@GetMapping or @PostMapping

 

 

 

 

HATEOAS

Hypermedia AS The Engine Of Application State
API응답에 하이퍼미디어링크를 추가하여 클라이언트가 동적으로 API탐색하도록 한다

 

 

 

Data REST

스프링 데이터 저장소를 위한 RESTful API를 자동으로 생성해준다
이를 통해 개발자가 별도의 컨트롤러를 작성하지 않고도
간단한 설정으로 CRUD 기능을 갖춘 API를 제공할 수 있게 한다

 

 

 

getter , setter

JAVA Bean 표준 방식이다
프로퍼티 접근 방식이라고 불리기도 함
내부에 Private로 선언된 변수를 접근하기위해
public 메소드로 접근을 열어준다

 

 

 

 

 

API의 기본 로직

JSON 방식으로 데이터를 만들어 HTTP 응답하겠다 라는게 기본 로직이다.
데이터는 key : value 형식인 JSON방식으로 주로 사용하며
해당 데이터를 리턴시키는 것 이다
데이터 형식에 따라 처리되는 컨버터가 조금 다르다
단순 문자열 : StringHttpMessageConverter
객체 : MappingJackson2HttpMessageConverter (JsonConverter)
byte 등 기타 여러형태 : HttpMessageConverter가 기본으로 등록되어있음

참고
클라이언트의 HTTP Accept헤더와 서버의 컨트롤러 반환 타입 정보 둘을 조합하여 HttpMessageConverter가 선택된다
특정 포멧으로 받고 싶다고 할때 messageConverter가 발동된다

 

 

 

 

 

 

API 동작과정

Pasted image 20231224183237.png

반응형