Restful API

CUBE·2023년 10월 13일
0

CS 지식

목록 보기
3/10

REpresentational State Trasfer의 약어로 웹을 이용할 때 제약 조건들을 정의하는 소프트웨어 아키텍처 스타일 입니다.

HTTP URL 을 통해 자원(Resource)을 명시하고 HTTP Method(GET, POST, PUT, DELETE)를 통해서 해당 자원(URL) 에 대한 CRUD(Create, Read, Update, Delete)를 적용하는 것을 의미 합니다. 한마디로 HTTP의 장점을 살리고자 하는 통신 규약이라 할 수 있습니다.

로이 필딩(Roy Fielding)의 2000년 박사학위 논문에서 소개되었으며 RestfulAPI 는 이러한 규약을 바탕으로 리소스 중심으로 설계하고 기능에 맞게 HTTP Method 를 사용하여 설계된 API 입니다.

GET
URL에서 리소스의 표현을 조회

POST
URL 에서 신규 리소스를 생성

PUT
URL 에서 리소스를 생성하거나 업데이트

PATCH
리소스의 부분 업데이트

DELETE
URL의 리소스를 제거

REST 특징

인터페이스 일관성
일관적인 인터페이스로 분리되어야 합니다.
무상태
각 요청 간 클라이언트의 context, 세션과 같은 상태 정보를 서버에 저장하지 않습니다.
캐시 처리 가능
클라이언트는 응답을 캐싱할 수 있어야 합니다.
캐시를 통해 대량의 요청을 효율적으로 처리할 수 있습니다.
계층화
클라이언트는 대상 서버에 직접 연결되어 있는지, Proxy 를 통해서 연결되어있는지 알 수 없습니다.
Code on demand
자바 애플릿이나 자바스크립트의 제공을 통해 서버가 클라이언트를 실행시킬 수 있는 로직을 전송하여 기능을 확장시킬 수 있습니다.
클라이언트/서버구조
아키텍처를 단순화시키고 작은 단위로 분리함으로서 클라이언트-서버의 각 파트가 독립적으로
구분하고 서로 간의 의존성을 줄입니다.

REST 구성요소
자원: HTTP URL
자원에 대한 행위: HTTP Method
자원에 대한 표현(Representations)

Result API 설계 원칙
01. 소문자를 사용한다.
02. 언더바 대신 하이픈을 사용한다.
03. 마지막에 슬래시를 포함하지 않는다.
04. 행위를 포함하지 않는다.
[자원에 대한 행위는 HTTP Method로 표현합니다.(Get,Post, Delete, Put)]

// X 
http://www.naver.com/user/Post_Result/post/1/

http://www.naver.com/user/post-result/1
  1. 파일 확장자는 URL에 포함시키지 않는다.
http://www.naver.com/image.jpg

http://www.naver.com/image
  1. 자원에는 형용사, 동사가 아닌 명사를 사용하며, 컨트롤 자원을 의미하는 경우 예외적으로 동사를 사용한다. URL은 자원을 표현하는데 중점을 두기 때문에 동사, 형용사보다는 명사를 사용하여야 합니다.
profile
엄마이오빠이상해

0개의 댓글