DevBoi

[Java] Restful API 본문

Language/[Java]

[Java] Restful API

HiSmith 2022. 4. 7. 15:57
반응형

Rest란

웹의 기존 기술과 Http 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다

구체적으로는 HTTP URI를 통해 어떤 자원인지 명시하고, HTTP method(Get,post,put,patch,delete)를 통해 자원을 처리하도록 설계된 것이다.

 

6가지 원칙

- 인터페이스 일관성

URI로 지정된 자원에 대한 조작을 통일되고 한정적인 인터페이스로 수행하는 것을 말한다.

HTTP표준 프로토콜에 따르는 모든 플랫폼에서 사용이가능하다.

 

-무상태

세션 정보나 쿠키를 별도로 저장하고 관리하지 않기 떄문에, API서버는 들어오는 요청만 단순 수행한다.

이전 요청이 다음 요청의 처리에 연관 되면 안된다.

 

-캐시처리 가능

웹 표준 HTTP프로토콜을 그대로 사용해서, 웹에서 사용하는 기존 인프라를 그대로 활용 할 수 있다.

Http가 가진 캐싱 기능적용이 가능하다. 그렇기에 대량의 요청을 효율적으로 처리할 수 있다.

 

 

-클라이언트-서버 구조

클라이언트는 사용자 인증이나 컨텍스트등을 관리하고 책임진다.

Rest 서버는 API제공하고 비즈니스 로직 처리 및 저장을 책임 져준다.

각각의 역할이 확실히 구분되기 때문에 서로간 의존성이 줄어든다.

 

-계층화

클라이언트는 REST-API 서버만 호출

해당 서버는 다중 계층으로 구성된다.

- 보안,로드밸런싱,암호화 계층을 추가해 구조상의 유연성을 둔다.

- 프록시, 게이트웨이 같은 네트워크 기반의 중간매체를 사용할 수 있게 한다.

 

 

 

RestFul api 메소드 종류

 

GET

리소스를 가져올때 사용, 

 

Post

새로운 리소스를 생성하거나, 독립적인 명령을 실행할때 사용

 

PUT

존재하는 리소스의 전체적인 업데이트하는경우에 사용

 

Delete

삭제

 

Patch

부분 리소스의 업데이트 경우에 사용한다.

PUT은 전체적인 업데이트, PATCH는 부분 업데이트이다. (지원하지 않는 브라우저나 웹 서버가 많다)

 

 

PUT은 데이터를 변경하기 위해서는, 변경되지 않는 데이터도 모두 전달을 해야한다.

 

 

쉽게 말하면, PUT 방식은 바뀌지 않는 속성도 보내야한다는 단점이 있다.

그러나, Patch는 일부 자원에 대한 수정이 가능하다.

쉽게 말하면, 변경하고자 하는 레벨의 데이터만 보내면 된다.

 

 

 

 

 

 

 

 

최종 정리한 표이다.

반응형

'Language > [Java]' 카테고리의 다른 글

[Java] 문맥 교환  (0) 2022.04.08
[Java] 멀티 쓰레드란  (0) 2022.04.08
데드락이란?  (0) 2022.04.07
[Java] JUnit4 와 JUnit5차이  (0) 2022.04.07
CDN이란?  (0) 2022.04.06