솔직히 다 이해 못 했다. 계속 접하면서 반복해야되지 싶다.
그렇지만 난 API도 곧 정복하겠지.. 후후
어차피 잘 될 놈이라..ㅎ
로이 필딩이 논문에서 제시한 REST 방법론을 실용적으로 적용하기 위해 레오나르드 리차드슨이 REST API를 잘 적용하기 위한 4단계 모델을 만들었다.
단계 | 설명 |
---|---|
3단계 | HATEOAS 원칙준수 |
2단계 | HTTP 메소드 원칙 준수 |
1단계 | 개별 리소스와의 통신 준수 |
0단계 | HTTP 사용 |
로이 필딩은 이 모든 단계를 충족해야 REST API라고 부를 수 있다고 주장했지만, 실제 3단계까지 지키기 어렵기 때문에, 2단계까지만 적용하더라도 좋은 API 디자인이라고 볼 수 있고, 이런 경우 HTTP API라고 부른다.
*REST API는 웹에서 사용되는 모든 데이터나 자원(Resource)을 HTTP URI로 표현함.
REST 성숙도 모델 2단계에는 CRUD에 맞게 적절한 HTTP 메서드를 사용하는 것에 중점을 둠.
0단계와 1단계는 모든 요청을 CRUD에 상관없이 POST로 하지만, REST 성숙도 모델 2단계에 따르면, 이는 CRUD에 따른 적합한 메서드는 아니다.
요청에 따른 응답코드를 명확하게 작성해야하며, 관련 리소스를 클라이언트가 Location헤더에 작성된 URI를 통해 확인할 수 있도록 해야, REST 성숙도 모델의 2단계를 충족한 것이라고 볼 수 있다.
메서드 사용시 규칙
GET
메서드 같은 경우는 서버의 데이터를 변화시키지 않는 요청에 사용해야 함.POST
는 요청마다 새로운 리소스를 생성하고, PUT
은 요청마다 같은 리소스를 반환한다. 매 요청마다 같은 리소스를 반환하는 특징을 멱등(idempotent)하다고 표현한다. 때문에, 멱등성을 가지는 메서드 PUT과 그렇지 않은 POST는 구분해서 사용해야 함.PUT
과 PATCH
도 구분하여 사용해야 한다. PUT
은 교체, PATCH
는 수정의 용도로 사용.API 작성시, REST 성숙도 모델의 2단계까지 적용하면, 대체적으로 잘 작성된 API라고 한다.
지금까지의 원칙에 따라 API를 작성했다면 가장 좋다마는, 개발자 혹은 개발 상황에 따라 성숙도 모델의 원칙을 지키지 못할 때고 있다.
참고할만한 API 자료
주로 공공 데이터
Open
이라는 키워드 글자 그대로 누구에게나 열려있는 API, 그러나 무제한으로 이용할 수 있는 것은 아니다.
기관이나 API마다, 정해진 이용 수칙이 있고, 이용 수칙에 따라 제한사항(가격, 정보의 제한 등)이 있을 수 있다.
Open API 간단하게 경험할 수 있는 대표적인사이트 Open Weather Map이라는 웹사이트에서 제공하는 날씨 API이다.
https://openweathermap.org/api