Rest API
는 웹에서 사용되는 데이터나 자원을 HTTP URI로 표현하고,
HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식이다.
Rest API를 작성할 때는 지켜야 할 몇가지 규칙이 있다.
0단계는 Rest API를 작성하기 위한 기본 단계다.
이 단계는 단순히 HTTP 프로토콜만 사용해도 되지만, REST API라고 할 수는 없다.
어떤 특정 시간에 예약하는 로직이 있다고 가정하면
0단계에선 HTTP 프로토콜만 사용해도 된다.
1단계에서는 0단계 모델에서 개별 리소스와의 통신을 준비한다.
Rest API는 웹에서 사용되는 모든 데이터나 자원을 URI로 표현한다.
하지만, 모든 자원을 접근하는것은 비효율적이니, 요구사항에 필요한 포인트를 엔드포인트
로 설정한다.
위 엔드포인트는 각각 /doctors/허준
과 /slots/123
이 엔드포인트로 설정되있다.
예약해야할 의사와 특정 id의 손님이 엔드포인트로 된 것이다.
추가로, 해당 엔트포인트 사용 시 실패 여부를 포함한 응답도 받아야한다.
2단계에서는 CRUD에 맞게 적절한 HTTP 메서드를 사용하는 것이 주된 요점이다.
기존 0,1 단계에서는 모두 POST
를 사용했지만,
첫 번째 경우인 예약 시간을 확인할 때에는 데이터를 조회하는 GET
메소드가 적절하고
두 번째 경우인 특정 시간에 예약하는 것은 POST
메소드가 적절하다.
다만, 메서드를 사용할 때 주의할 점이 있다.
마지막 3단계는 하이퍼미디어 컨트롤(HATEOAS)를 적용한다.
3단계와 2단계와의 차이는 "응답"에 있다.
응답에 리소스의 URI를 포함한 링크 요소를 삽입한다.
예약 가능한 시간 확인 후 예약이 가능하면 사용자는 그 시간대에 예약을 할 것이다.
따라서, 특정 시간에 예약할수 있는 링크를 POST를 통해 넣어준다.