[Android] Retrofit에서 언급되는 REST API는 무엇인가 ?

Delight Yoon·2022년 11월 7일
0

Android

목록 보기
9/17
post-thumbnail
post-custom-banner

📌 REST ?


  • RESTRepresentational State Transfer 라는 용어의 약자
  • 해당 자원의 상태를 주고받는 것을 말함.
  • 2000년도에 로이 필딩 (Roy Fielding)의 박사학위 논문에서 최초로 소개

REST 구성


  • 자원(Resource) - HTTP URI
  • 행위(Verb) - HTTP Method
  • 내용(Representation) - HTTP Message Pay Load

즉, HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고,
HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 통해
해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미한다.

CRUD ?


CRUD는 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 묶어서 일컫는 말로
REST에서의 CRUD Operation 동작 예시는 다음과 같다.

Create : 데이터 생성 (POST)
Read : 데이터 조회(GET)
Update : 데이터 수정(PUT, PATCH)
Delete : 데이터 삭제(DELETE)

REST 특징

  1. Uniform Interface (인터페이스 일관성)
  2. Stateless (무상태성)
  3. Cacheable (캐시 처리 가능)
  4. Client - Server 구조
  5. 계층형 구조

REST API 중심 규칙


1) URI는 정보의 자원을 표현해야 한다. (리소스명은 동사보다는 명사를 사용)

	GET /members/delete/1

위와 같은 방식은 REST를 제대로 적용하지 않은 URI이다. URI는 자원을 표현하는데 중점을 두어야 한다.

delete 와 같은 행위에 대한 표현이 들어가서는 안된다.

2) 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE 등)로 표현
위의 잘못 된 URI를 HTTP Method를 통해 수정해 보면

DELETE /members/1

으로 수정할 수 있다.


회원정보를 가져올 때는 GET, 회원 추가 시의 행위를 표현하고자 할 때는 POST METHOD를 사용한다.

회원정보를 가져오는 URI

GET /members/show/1     (x)
GET /members/1          (o)

회원을 추가할 때

GET /members/insert/2 (x)  - GET 메서드는 리소스 생성에 맞지 않습니다.
POST /members/2       (o)

showinsert 같은 행위가 표시되어서는 안된다.

HTTP 메서드 알맞은 역할


📌 References

profile
Yoon's Dev Blog
post-custom-banner

0개의 댓글