아인띠
Hello, Ain!
아인띠
  • 분류 전체보기 (23)
    • 사담🌹 (1)
    • Basic (7)
      • 알고리즘 (4)
    • Front (1)
      • React (1)
    • Back (9)
      • Java (5)
      • DATABASE (3)
      • JSP (1)
      • Python (0)
    • ETC (5)
      • Unity(C#) (2)

인기 글

티스토리

hELLO · Designed By 정상우.
아인띠

Hello, Ain!

ETC

REST API

2021. 8. 17. 13:45

⭐ REST(Representational State Transfer)

: HTTP에 존재하는 모든 자원에 고유한 URI를 부여하여 활용하는 것으로, 자원을 정의하는 방법론

: 또한 이와 같이 REST 방식을 따르는 시스템을 RESTful이라고 한다.

 

⭐ REST 구성

- 자원(RESOURCE): URI

- 행위(Verb): HTTP METHOD

- 표현(Representations)

 

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

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

> 슬래시 구분자(/)는 계층 관계를 나타내는 데 사용하며, 마지막 문자로 포함되면 안된다.

> 하이픈(-)은 가독성을 높이는 데 사용하며, 언더바(_)는 사용하지 않는다.

> 소문자를 사용하며, 파일 확장자는 포함시키지 않는다.

 

더보기

⭐ REST 아키텍처에 적용되는 6가지 제한 조건

- 인터페이스 일관성: 일관적인 인터페이스로 분리되어야 한다.

- 무상태(Stateless): 각 요청간 클라이언트의 콘텍스트가 서버에 저장되어서는 안된다.

- 캐시 처리 가능(Cacheable): 클라이언트는 응답을 캐싱할 수 있어야 한다.

- 계층화(Layered System) 클라이언트는 보통 대상 서버에 직접 연결되었는지, 또는 중간 서버를 통해 연결되었는지를 알 수 없다. 중간서버는 로드 밸런싱 기능이나 공유 캐시 기능을 제공함으로써 시스템 규모 확장성을 향상시키는 데 유용하다.

- 클라이언트/서버 구조: 아키텍처는 단순화시키고 작은 단위로 분리함으로써 클라이언트-서버의 각 파트가 독립적으로 개선될 수 있도록 해준다.

- Code on demand (optional)

 

⭐ REST 인터페이스의 원칙에 대한 가이드

1. 자원의 식별

: 요청 내에서 기술된 개별 자원을 식별할 수 있어야 한다. 웹 기반의 REST시스템에서의 URI의 사용을 예로 들 수 있다. 자원 그 자체는 클라이언트가 받는 문서와는 개념적으로 분리되어 있다. 예를 들어, 서버는 데이터베이스 내부의 자료를 직접 전송하는 대신, 데이터베이스 레코드를 HTML, XML이나 JSON등의 형식으로 전송한다.

 

2. 메시지를 통한 리소스의 조작

: 클라이언트가 어떤 자원을 지칭하는 메시지와 특정 메타데이터만 가지고 있다면 이것으로 서버상의 해당 자원을 변겅, 삭제할 수 있는 충분한 정보를 가지고 있는 것이다.

 

3. 자기 서술적 메시지

: 각 메시지는 자신을 어떻게 처리해야 하는지에 대한 충분한 정보를 포함해야 한다. 

 

⭐ 상태코드

상태 코드  
200 클라이언트의 요청을 정상적으로 수행
201 클라이언트가 어떠한 리소스 생성을 요청했고, 해당 리소스가 성공적으로 생성됨
400 클라이언트의 요청이 부적절함
401 클라이언트가 인증되지 않은 상태에서 보호된 리소스를 요청함
403 유저 인증상태와 관계 없이 응답하고싶지 않은 리소스를 클라이언트가 요청
405 클라이언트가 요청한 리소스에서는 사용 불가능한 Method를 이용
301 클라이언트가 요청한 리소스에 대한 URI가 변경됨
500 서버에 문제가 있을 경우

 

 

⭐ reference

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

저작자표시 (새창열림)

'ETC' 카테고리의 다른 글

Git ignore 적용하기, Authentication failed 에러 해결하기.  (0) 2021.11.01
Eclipse 관련 작고 사소한 정보들  (0) 2021.09.01
    'ETC' 카테고리의 다른 글
    • Git ignore 적용하기, Authentication failed 에러 해결하기.
    • Eclipse 관련 작고 사소한 정보들
    아인띠
    아인띠
    https://github.com/aine-jeong

    티스토리툴바