REST(Representational State Transfer) 정의
- 자원(resource) 의 표현에 의한 요청정보 전달
- JSON 또는 XML 데이터로 응답
- Web의 기존 기술과 HTTP 프로토콜을 활용하는 통신 방식
개념
- HTTP URI를 통해 자원(resource) 을 명시하고, HTTP Methode(POST, GET, PUT, DELETE) 를 통해 해당 자원에 대한 CRUD 기능을 적용하는 것을 의미함.
API(Application Programming Interface) 란?
- 데이터와 기능의 집합을 제공하여 컴퓨터 프로그램간 상호작용을 촉진하며, 서로 정보를 교환가능 하도록 하는 것
REST API 정의
- REST 기반으로 서비스 API를 구현한 것
- OpenAPI(누구나 사용할 수 있도록 공개된 API : 구글 맵, 공공 데이터 등), 마이크로 서비스(하나의 큰 애플리
- 케이션을 여러 개의 작은 애플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 아키텍쳐) 는 REST API를 제공함.
REST API 설계 규칙
- URI는 정보의 자원을 표현해야 함.
- 자원에 대한 행위는 HTTP Method(GET, PUT, POST, DELETE 등) 으로 표현
- 슬래시 구분자( / ) 는 계층 관계를 나타냄.
- URI 마지막 문자로 슬래시( / ) 를 포함하지 않는다, (Django는 / 를 붙이는 것을 권장)
- 하이픈( - ) 은 URI 가독성을 높이는데 사용함.
- 밑줄( _ ) 은 URI에 사용 X
- URI 경로에는 소문자가 적합함.
- 파일확장자는 URI에 포함 X
RESTful
- 일반적으로 REST라는 아키텍처를 구현하는 웹 서비스를 나타내기 위해 사용되는 용어, 'REST API'를 제공하는 웹서비스를 'RESTful'하다고 함.
RESTful 목적
- 이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것.
- RESTful한 API 구현 목적은 성능 향상 목적 X, 일반적인 컨벤션을 통한 APU의 이해도및 호환성을 높이는 것임.
- 성능이 중요한 상황에서는 굳이 RESTful한 API 구현 필요 X