프론트엔드 공부를 하면서 API 관련해 이해가 필요함이 느껴졌다.
그래서 개념을 정리했다.
✔ RESTful API
✓ RESTful API이란 REST란 형식을 따르는 API 시스템
을 의미
✓ 과거 SOAP이라는 복잡한 형식을 대체한 것
✓ Representational State Transfer(REST)는 API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처
API 개발자는 여러 아키텍처를 사용하여 API를 설계할 수 있는데, REST (아키텍처) 스타일을 따르는 API를 RESTful API라고 한다. 단, REST를 사용했다 하여 모두가 RESTful 한 것은 아니고
, REST API의 설계 규칙(아키텍처) 을 올바르게 지킨 시스템을 RESTful하다
고 말할 수 있다.
✔ REST의 특징
가장 큰 특징은 RESTful하게 짜여진 요청은 주소만 보고도 뭘 하는 요청인지 파악 가능한 형식!
✅ AWS - RESTful API란 무엇입니까? 참고
✅ 혼잣말 하는 개발자님 블로그 참고
균일한 인터페이스
무상태 stateless
- 각 요청간 클라이언트의 상태 정보를 서버에 저장하지 않는다.
계층화 시스템
- 클라이언트는 대상 서버에 직접 연결되어있는지, Proxy를 통해서 연결되었는지 알 수 없다.
캐시 가능성
- 클라이언트는 응답을 캐싱할수 있어아한다. 캐시를 통해 대량의 요청을 효율적으로 처리한다.
온디맨드 코드
- 자바 애플릿이나 자바스크립트의 제공을 통해 서버가 클라이언트를 실행시킬 수 있는 로직을 전송하여 기능을 확장시킬수 있다.
클라이언트/서버 구조
- 아키텍처를 단순화 시키고 작은 단위로 분리함으로써 클라이언트 서버의 각 파트가 독립적으로 구분하고 서로간의 의존성을 줄인다.
✔ RESTful API 사용 이점
확장성
- REST가 클라이언트-서버 상호 작용을 최적화하기 때문에 효율적으로 크기 조정할 수 있다.
- 캐싱을 잘 관리해 통신 병목현상을 일으키지 않으면서 확장성을 지원한다.
유연성
- 완전한 클라이언트-서버 분리를 지원해 각 부분을 독립적으로 발전, 다양한 서버구성 요소를 단순화 한다.
- 서버와 클라이언트를 따로 관리하므로 유연성을 향상시킨다.
독립성
- API 설계에 영향을 주지 않고 다양한 프로그램밍 언어로 작성 가능하다.
- 통신에 영향을 주지 않고 기본 기술을 변경할 수 있다.
✔ RESTful API의 URI 규칙
API가 RESTful로 간주되려면 다음 기준을 따라야 한다.
- 소문자를 사용
- 언더바(_) 대신 하이픈(-)을 사용
- 마지막에 슬래시(/)를 포함 ❌
- 행위를 포함 ❌
- 파일 확장자는 URL에 포함 ❌
- 전달하고자 하는 명사를 사용하되, 컨트롤 자원을 의미하는 경우 예외적으로 동사를 사용
- URI에 작성되는 영어를 복수형으로 작성
RESTful API 메소드
기본적으로 RESTful API라 하면 사진처럼 4~5가지 Http메소드
를 사용한다.
GET
POST
PUT
PATCH
- 정석대로면, 정보 중 일부를 특정방식으로 변경할 때 사용
DELETE
결론
REST API란!
HTTP 요청을 보낼 때 어떤 URI에 어떤 메소드를 사용할지 추가적으로 기타사항 등을 개발자 사이에 널리 지켜지는 약속 😎
✔ 참고 / 용어정리
📌 AWS - RESTful API란 무엇입니까?
📌 IBM - REST API란?
* API : 클라이언트와 웹 리소스 사이의 "게이트웨이"라 생각하면 된다.
* REST API, RESTful API 둘다 같은 의미이다.
* 아키텍쳐 : 서비스 동작원리, 원칙
* URI : 자원을 구조와 함께 나타내는 구분자
정리가 잘 된 글이네요. 도움이 됐습니다.