728x90
REST Api의 기초
먼저 spring boot에서 @RestController란 @Controller와 @ResponseBody의 조합이다.
- Controller : Model객체를 통해 데이터를 전달하고, View를 찾아간다.
- RestController : 객체만을 반환한다. -> 객체는 주로 JSON나 XML형태로 http응답에 담아서 전송한다.
Controller는 Spring 2.5버전에서부터, RestController는 spring 4.0버전에서부터 지원되었다.
RestController 사용시 모든 메소드가 뷰 대신 객체로 작성된다.
REST의 특징
- Uniform Interface
HTTP의 표준에 따른다면 언어에 종속되지 않고, 모든 플랫폼에서 사용 가능하다. - Stateless
REST는 무상태성의 성격을 갖는다.
들어오는 요청만을 처리하면 되기 때문에 자유도가 높아지고 구현이 단순해진다. - Cacheable
HTTP의 기존 웹 표준을 그대로 사용하기 때문에, 웹의 기존 인프라중 하나인 캐시 기능을 적용할 수 있다. - Self-descriptiveness
REST API의 메세지만 보고도 이를 쉽게 이해할 수 있는 구조로 되어 있다. - Client-server구조
REST server는 API를 제공하고, 클라이언트는 session/로그인 정보 등을 관리하여 역할이 확실히 구분되기 때문에 클라이언트와 서버의 의존성을 줄일 수 있다. - 계층형 구조
REST server는 다중 계층으로 구성될 수 있다.
따라서 API server는 비즈니스 로직으로만 구성하고, 그 앞에 보안/암호화/사용자 인증 등의 방안을 추가하여 주고 상의 유연성을 만들어 낼 수 있다. - Code-On-Demand(optional)
Server로부터 스크립트를 받아 Client에서 실행할 수 있다.
REST api 사용 이유
- HTTP의 프로토콜 인프라를 그대로 사용하기 때문에 별도의 인프라를 구축할 필요가 없다.
- HTTP표준 프로토콜을 따르는 모든 플랫폼에서 사용 가능하다.
- 서버와 클라이언트 간 역할 분리가 가능하다.
- 의도에 따른 설계가 간편하다.
Rest API사용 시 주의점
- URL상에서 동사를 사용하지 않는다. + URL은 서버의 자원을 표현하도록 한다.
- 이러한 동사를 사용하는 대신 HTTP methods를 통해 통신한다.
- 유저생성 / 유저확인 / 유저변경 / 유저삭제의 CRUD가 있을 때에 userCreate, userConfirm, userUpdate, userDelete를 사용하지 않는다.
- user라고 통일 후, methods를 POST / GET / PUT / DELETE를 사용하여 통신하도록 한다.
- 유저생성 / 유저확인 / 유저변경 / 유저삭제의 CRUD가 있을 때에 userCreate, userConfirm, userUpdate, userDelete를 사용하지 않는다.
- 이러한 동사를 사용하는 대신 HTTP methods를 통해 통신한다.
- 소문자를 사용한다.
- URL경로에 대문자를 포함하지 않는다.
'이론 정리' 카테고리의 다른 글
RBAC과 ABAC 기초 정리 (0) | 2022.08.18 |
---|---|
XSS와 sql injection에 관하여 (0) | 2022.06.11 |
MA(모놀리식)와 MSA에 관하여 (0) | 2022.04.07 |
마크업 / 마크다운 (0) | 2021.11.07 |
HTML 기본 태그 정리 (0) | 2021.11.06 |