REST( Representational State Transfer ) : 클라이언트 ↔ 서버의 통신 아키텍쳐 스타일 중 하나로 URI와 HTTP 이용
자원 + 구조 구분자 → URI, 동사가 아닌 명사로 이루어짐
API( application programming interface ): 소프트웨어 간에 지정된 형식으로 요청, 명령을 받는 수단
REST API의 가장 중요한 특성 → 각 요청의 목적을 요청의 모습 자체로 추론 가능
restful → REST가 적용된 시스템, 요청 주소만 봐도 무슨 요청인지 안다! 방식도 목적에 맞춰 사용
HTTP에서 요청을 보낼 때 어떤 URI에 어떤 메소드를 사용할지에 대한 규칙( REST )가 적용된 API
→ SOAP 규약에 비해 HTTP를 이용해 간단하고 일관된 인터페이스를 통해 URI만으로도 요청을 직관적으로 이해 가능
GET: READ, DELETE < POST: CREATE, PUT(+ PATCH ) : UPDATE 사용
✓ put은 정보 통째로 변경, PATCH는 특정 방식으로 수정할 때
일관된 인터페이스 ( URI, HTTP 메소드의 사용, RPC 미호출 )
클라이언트/서버
비연결성 ( 세션 등 이전 상황, 즉 문맥 없이도 통신 가능 )
Cacheable ( 서버의 응답 메시지는 캐싱, 즉 저장 후 재사용 가능 )
계층화된 시스템
→ 중간 계층의 기능( 로드밸런싱, 서버 증설, 인증 시스템 도입 등 )이 변경되어도 통신에 영향 X
주문형 코드 ( 선택사항, 서버가 스크립트 전송 )