REST API - 웹에서 사용되는 데이터나 자원(Resource)을 HTTP URI로 표현하고, HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식을 말한다. 즉 음식을 주문할 때 음식판이 보기 어려우면 주문하기 힘들다 그래서 알아보기 쉽고 잘 작성된 메뉴판이 필요한데 이것이 REST API이다.
REST API를 잘 적용하기 위한 4단계 모델
0단계 - 단순히 HTTP 프로토콜을 사용하기만 해도 된다.
1단계 - 개별 리소스(Resource)와의 통신을 준수해야 합니다
빨간색 박스는 /doctors/허준이라는 엔드포인트를 사용한다.
주황색 박스는 리소스 사용에 대한 실패 여부를 포함한 응답이다.
(요청에 따른 응답으로 리소스를 전달할 때에도 사용한 리소스에 대한 정보와 함께 리소스 사용에 대한 성공/실패 여부를 반환해야 한다.)
2단계 - CRUD에 맞게 적절한 HTTP 메서드를 사용하는 것에 중점을 둡니다
3단계 - 하이퍼미디어 컨트롤을 적용한다. 즉 응답메세지에 링크를 넣어서 준다.
REST API는 인터넷과 웹을 통해서 나의 컴퓨터를 제어할때 어떻게 하면 시행착오를 줄이고 더 좋은 API를 만들 수 있는가에 대한 고민의 결과물이다. 즉 모범사례라 볼 수 있다.
데이터들을 REST API에서는 Resource라고 부른다
Resuorce를 REST API로 표현하면 URI로 표현한다.
데이터 전체를 Collection이라 부른다
데이터 하나 하나를 Element라 부른다.
이것은 이름일 뿐이다. 이 정보를 가공할 수 있어야한다.
정보를 가공하는 방법은 CRUD이다.
CRUD는 메소드로 가공할 수 있다.
put - 전체 내용을 교체한다
push - 부분을 교체한다
생성 부분이다.
노란색 네모 - 데이터의 주소, 리소스의 식별자
파란색 네모 - Resource 의 CREATE 메소드인 POST를 이용해 추가한다.
초록색 네모 - 추가할 내용의 타입은 josn타입임을 알려준다.
빨간색 네모 - 실제로 topics라는 리소스에 추가할 내용인 title: "fetch", body: "fetch is ..." 라는 내용을 추가한다.
실행을 누르면 topics에 내용이 추가된 것을 확인할 수 있다.
콘솔에서 status는 201로 뜨고 결과가 잘 나오는 것을 알 수 있다.
Request Headers 의 view source를 누르면 실제 데이터를 볼 수 있다.
빨간색 네모 - POST명령어
파란색 네모 - URI
초록색 네모 - 타입
실제 내용은 Headers 밑 Payload에서 확인이 가능하다.
빨간색 네모 - 성공했다는 응답 코드를 보내줬다.
파란색 네모 - 타입
fetch는 적힌 부분의 내용만 수정된다. 즉 title: 'fetch - patch' 라고 써있다면 topics 의 title 부분만 수정이 되는 것 이다.
put은 적힌 부분을 제외하고 나머지를 없앤다. 예시에서 topci 부분의 title: 'fetch - put' 이라는 부분을 제외하고 모두 사라진 것을 알 수 있다.
공공 데이터를 무료로 사용할 수 있는 데이터
API를 이용하기 위해서는 API Key가 필요하다. API key는 서버의 문을 여는 열쇠 라고 생각하자.