
다음과 같은 원칙을 따른 설계를 해야 RESTful API 라고 부를 수 있다.
→ 응답/요청에 대한 표시정보가 균일해야 한다.
// 프로토콜 + URI 가 바로 URL!
const response = await fetch('https://133.241.53.53');→ 각각의 요청은 독립적이어야 한다.
→ 필요 시 다른 계층을 추가할 수 있다.
→ 캐싱을 지원한다.
→ 서버는 클라이언트의 로직을 일시적으로 확장할 수 있다.
일반적인 인터넷 브라우징과 동일하게 동작한다. 이때 API 개발자는 서버 어플리케이션 API 문서에 클라이언트가 어떻게 API 를 사용해야 하는지 명시한다.
URI 로 리소스를 고유하게 식별해야 한다.
리소스에 수행하는 작업을 알려주는 HTTP 메서드
응답의 성공/실패를 HTTP 상태 코드로 알려줘야 한다.
리소스를 포함한 요청을 처리한 정보들을 전송한다.
응답에 대한 헤더 정보.
메타데이터(인코딩 정보, 날짜 및 컨텐츠 유형 등)를 포함하고 있다.
클라이언트는 서버에 요청을 보낼 때 보안 및 신뢰를 위해 자신의 신원을 증명해야 한다. 4가지 방법이 사용된다.
기본 인증
헤더에 사용자 암호와 이름을 넣어 인코딩 후 전송한다.
전달자 인증
bearer 토큰을 사용한 방식.
클라이언트가 요청을 보내면 서버가 응답으로 보내준 인증용 토큰을 헤더에 넣어서 전송한다.
서버에서 고유하게 생성한 값을 최초 클라이언트에게 할당한다. 리소스 접근 시마다 API 키를 클라이언트가 전송해야 한다.
암호와 토큰을 둘 다 요구하여 강력한 인증방식. 암호를 요청한 다음 추가적으로 토큰을 요청한다.