실제 면접에서 자주 출제되는 유형으로
Restful API를 설명하세요 / Restful하다는게 무엇일까요? 라는 식으로 많이 출제된다고 한다.
(로이필딩) HTTP의 우수성에 비해 제대로 활용하지 못하는 모습이 아쉬워 HTTP 장점 최대한 활용할 수 있는 아키텍쳐로 낸 것이 REST개념. 즉 HTTP 기반으로 필요한 자원에 쉽게 접근할 수 있도록 도와주는 아키텍쳐.
REpresentational State Transfer : "웹에 존재하는 모든 자원에 고유 URI를 부여하여 자원에 대한 주소를 지정하는 방법론"
즉 웹 상에 모든 내역에 대해 주소를 지정하는 방법에 대한 이론. 말뜻이 어렵지만 결국 '주소 짓는 방법'을 생각하면 되는 것 같다.
적절한 예시인지는 모르겠으나 송장번호 쓰는 종이 같은 느낌?
여기에 API?- > REST API?? : 자판, 버튼, 키보드 등 접점부의 사용할 수 있는 것 정도로 소프트웨어에서도 통용될 눈에 보이지 않는 어떤 장치. 공개된 메뉴얼 같은 것.
기상청 서버로부터 미리 작성된 프로그램으로 날씨를 지정된 메뉴얼로 요청 받는 프로그래밍
위의 REST와 연결하면 주소 짓는 방법을 사용하는 시스템 정도로 이해하면 될 것 같다.
즉 리소스를 구분하는 특정한 주소
이 부분은 프/백이 논의하여 결정하는 부분이라고 한다.
여기까지 알아본 내용이 path parameter였고
다음은 query parameter
검색 엔진을 사용하다보면 끝에 product?ordering=1 이런걸 본 적이 있을 것이다. 이것이 쿼리 파라미터인데 주로 key:value로 이뤄져 있으며 API 설계에 따라 다양하게 사용이 가능하다.
예 :
그럼 언제 많이 쓰이는가? :
<gabia.라이브러리 참고>
등 기존에 있는 규약에서 세세한 정보를 더 추가해서 약속을 하여 사용하고 있음.