REST API는 자원, 행위, 표현의 3가지 요소로 구성됨
REST는 자체 표현 구조로 구성되어 REST API만으로 Http 요청의 내용을 이해할 수 있다.
Q1. REST에서 가장 중요한 2가지 원칙은?
1. URL은 리소스를 표현하는데에만 집중 2. 행위에 대한 정의는 Http 요청 메서드를 통해 함
리소스는 동사보다 명사를 활용
이런식으로 동사를 활용하는 것이 아닌 명사로만 활용
Http 요청 메서드는 클라이언트가 서버에게 요청의 종류와 목적 (리소스에 대한 행위)를 알리는 방법
주로 5가지 요청 메서드 (GET, POST, PUT, PATCH, DELETE)를 통해 CURD를 구현한다.
당연하게도, 리소스에 대한 행위는 Http 요청 메서드를 통해 표현하며 URL에 요청 메서드를 표현하지 않는다.
다음은 json Server를 통한 REST API 실습이다.
db.json 파일을 생성 (리소스를 제공하는 데이터베이스 역할)
그 후 CLI (Command Line Interface) 특성상 매번 입력해주기 귀찮으니
script를 수정하여 시작할시 실행될 코드를 지정
todos 리소스에서 모든 todo를 취득한다.
// XMLHttpRequest 객체 생성
const xhr = new XMLHttpRequest();
여기서 todos의 전체가 아닌 id를 활용하여 특정 todo를 취득하고 싶다면?
todos 리소스에 새로운 todo를 생성하는 것
POST 요청시에는 setRequestHeader 메서드를 사용하여 요청 몸체에 담아 서버로 전송할 페이로드의 MIME 타입을 지정해야함
결과 (미리 만든 post.html)
특정 리소스 전체를 교체할 때 사용
다음 예제는 todos 리소스에서 특정 todo를 제외한 리소스 전체를 교체
PUT 요청시에도 setRequestHeader 메서드를 사용하여 요청 몸체에 담아 서버로 전송할 페이로드의 MIME 타입을 지정
PATCH는 특정 리소스의 일부를 수정할 때 사용
다음 예제는 todos 리소스의 id로 todo를 특정하여 completed만 수정
PATCH 요청시에도 setRequestHEader 메서드를 사용하여 요청 몸체에 담아 서버로 전송할 페이로드의 MIME 타입 지정
todos의 id를 활용하여 todo를 삭제