REST API
◾ REST 원리를 따라 설계된 API
🔹RESTful : REST API의 설계 규칙을 올바르게 지킴
🤷♀️ 그래서 REST가 뭐쥬?
🤝 REST (Representational State Transfer)
◾ 자원을 정의하고 자원에 대한 주소를 지정하는 방법을 일컫는 네트워크 아키텍처 원리
📌 REST 구성 요소
1️⃣ 자원 (Resource) : HTTP URI
🔹URI (Uniform Resource Identifier) : 자원을 식별하기 위한 문자열
2️⃣ 자원에 대한 행위 (Verb) : HTTP Method (GET, POST, DELETE, PUT...)
3️⃣ 자원에 대한 행위의 구체적인 내용 (Representations) : HTTP Message, xml, JSON 등
📌 REST 특징
1️⃣ Server-Client (서버-클라이언트 구조) : 서버와 클라이언트로 분리되며 서로 의존성이 없어야 함
2️⃣ Stateless (무상태성) : 서버는 사용자의 상태 정보를 따로 저장하지 않으며 모든 요청을 새로운 요청으로 인식해 처리함
3️⃣ Cacheable (캐시 처리) : HTTP 등의 네트워크 프로토콜에서 제공하는 캐싱 기능을 적용할 수 있어야 함
4️⃣ Layered System (계층화) : 정보가 계층적으로 분리되어 있어야 함
5️⃣ Uniform interface (인터페이스 일관성) : HTTP 표준인 URL과 응답 코드, 요청-응답 방식을 이용
6️⃣ Self-descriptiveness (자체 표현) : API로 전송되는 내용은 별도 문서 없이 쉽게 이해할 수 있는 자체 표현 구조를 지녀야 함
📌 REST 장단점
✅ 장점
◽ HTTP 프로토콜을 그대로 사용해 별도의 인프라를 구축할 필요가 없음
◽ HTTP 프로토콜을 사용하는 모든 플랫폼에서 사용 가능
◽ 설계 의도를 쉽게 파악할 수 있음
◽ 서버와 클라이언트의 역할 명확하게 분
✅ 단점
◽ HTTP 메소드 형태가 제한적
◽ 구형 브라우저에서 호환되지 않음
📌 RESTful API 설계 규칙
◾ 어떠한 요청인지 쉽게 인식될 수 있어야 함
1️⃣ 명사, 소문자 사용o / 동사, 대문자 사용x
👍 http://coding.com/result
👎 http://coding.com/Finish
2️⃣ 마지막에 슬래시x
3️⃣ 하이픈o / 언더바x
4️⃣ 파일 확장자x
5️⃣ 자원 행위 명시x
📋 요약
REST란
1.HTTP URI를 통해 자원을 명시하고
2.HTTP 메소드를 통해
3.해당 자원에 대한 CRUD를 실행하는 것
참고 자료
https://stdio-han.tistory.com/88
https://khj93.tistory.com/entry/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-REST-API%EB%9E%80-REST-RESTful%EC%9D%B4%EB%9E%80
https://ko.wikipedia.org/wiki/REST