본문 바로가기
카테고리 없음

TIL-14

by 오우지 2021. 10. 5.

https://meetup.toast.com/posts/92

 

REST API 제대로 알고 사용하기 : NHN Cloud Meetup

REST API 제대로 알고 사용하기

meetup.toast.com

 

REST API

 

1. REST의 구성

- 자원(Resource)

- 행위(Verb)

- 표현(Representations)

 

 

2. REST의 특징

 

1) Uniform

URI로 지정한 리소스에 대한 조작을 통일되고 한정적인 인터레이스로 수행하는 아키텍처 스타일

2) Stateless

무상태성 성격. 상태정보를 따로 저장하고 관리하지 않고 세션정보나 쿠키정보를 별도로 저장하고 관리하지 않기 때문에 API 서버는 요청을 단순히 처리하면 된다.

3) Cacheable

HTTP의 기존 웹표준을 그대로 사용하기 때문에 웹에서 사용하는 인프라를 그대로 사용 가능. -> HTTP의 캐싱 기능이 적용 가능 (Last-Modified태그나 E-Tag를 이용)

4) Self-descriptiveness

REST API 메시지만 보고도 쉽게 이해할 수 있는 자체 표현구조다.

5) Client - Server구조

서버는 API 제공, 클라이언트는 사용자 인증이나 컨텍스트(세션, 로그인 정보)등을 직접 관리하는 구조로 역할이 분리되기 때문에 각자 할 내용이 명확해지고 의존성이 줄어든다.

6) 계층형 구조

다중 계층으로 구성될 수 있으며 보안, 로드밸런싱, 암호화 계층을 추가해 구조상의 유연성을 둘 수 있고 PROXY, 게이트웨이 같은 네트워크 기반의 중간매체를 사용할 수 있게한다.

 

3. REST API 설계 시 중요한 항목

1) URI는 정보의 자원을 표현해야 한다.

2) 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현한다.

 

 

3. REST API 중심 규칙

 

1) URI는 정보의 자원을 표현해야 한다.(명사)

GET /members/delete/1

위의 방식은 자원을 표현하는데 중점을 두지 않았기 때문에 틀렸다.

 

2) 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현

 

 

 

4. URI 설계 시 주의점

 

1) 슬래시 구분자는 계층관계를 나타내는데 사용하고 마지막에 붙이지 않는다.

2) 하이픈은 URI 가독성을 높이는데 사용

3) 밑줄을 사용하지 않는다.

4) URI 경로에는 소문자가 적합하다.

5) 파일 확장자는 URI에 포함시키지 않는다. Accept header를 사용한다.

5. 자원을 표현하는 Collection과 Document

http:// restapi.example.com/sports/soccer
http:// restapi.example.com/sports/soccer/players/13

sports는 컬렉션, soccer는 도큐먼트다.

아래에서 컬렉션은 players라는 복수로 사용해 이해하기 쉽게 만들었다.

 

 

5. HTTP 응답 상태 코드