REST : Representational State Transfer = 표현 / 상태 / 전달
표현 = HTTP URL
상태 전달 = HTTP Method
API : Application Programming Interface
API에 대한 이해
정보 사용자와 정보 제공자간에 호출과 응답이 이루어지는 것, 프로토콜 세트.
API는 사용자가 원하는 요청을 시스템에 전달할 수 있게 지원하고, 해당 요청을 이해하고 이행할 수 있게 함.

ex) 날씨 서비스 API
사용자 : 우편번호를 제공 (호출)
제공자 : 최고기온과 최저기온에 대한 정보를 제공 (응답)
API의 장점
1. 리소스(제공자)와 정보(사용자)를 공유할 수 있음
- 위의 예시에서는 우편번호(정보)를 제공하면 기온에 대한 정보를 제공(리소스)받기 때문에 정보의 공유가 이루어짐
사용자의 요청이 들어오면, 리소스라는 정보더미에서 해당 요청에 맞는 정보를 반환
리소스는 복수개의 엘리먼트가 모인 컬렉션의 형태로 존재하게 됨

2. 권한을 가진 사람만이 액세스 가능하도록 함, 조직이 보안 및 제어에 대해 관리가 가능함
- 공공API를 사용할 때 보면 먼저 API사용에 대한 권한을 요청하고 승인받은 사용자에게 API의 링크가 주어지는 경우가 있음
- 액세스 권한을 어떻게, 누구에게 제공할지 여부만 결정하면 됨
3. 리소스 검색 방법 또는 리소스의 출처에 대한 지식이 없이도 사용자가 사용할 수 있음
RESTful API에 대한 이해
REST API는 우체국 송장 양식 같은 것 (형식)

어떤 기술이나 제품이 아니라, 형식이기 때문에 어떤 언어를 쓰든 상관이 없음
특정 기술을 의미하는 것이 아니기 때문!
각 요청이 어떤 동작이나 정보를 위한 것인지를 그 요청의 모습 자체로 추론이 가능하게 함
예를 들어, https://(사이트도메인)/1이라는 주소가 '클래스 정보 리스트 출력' 기능을 수행한다고 할 때, 사실 만드는 개발자의 입장에서는 잘 수행하기만 하면 그만이겠지만, 인수인계를 받는 개발자나 혹은 해당 API를 사용해서 다른 제품을 만들 개발자들은 해당 주소만을 보고 이 API가 어떤 기능을 수행하는지 쉽게 파악하기 어려움
RESTful하게 만든 API는 요청을 보내는 주소 만으로도 대략 이 기능에 대한 파악이 가능함
https://(사이트도메인)/classes/2/students?sex=male 라는 주소가 있다면 '2반에 소속된 남학생들의 정보를 출력'하는 요청을 전달했다는 것을 파악할 수 있음
서버에 REST API로 요청을 보낼 때에는 HTTP 규약에 따라 신호를 전송
HTTP메소드 중 GET, POST, DELETE, PUT (,PATCH)를 사용하여 작성함
- GET : 상세 정보 출력
- POST : 정보 추가
- PUT/PATCH : 정보 수정 (PUT은 정보를 통째로 변경, PATCH는 일부를 특정 방식으로 변경하는 경우 사용)
- DELETE : 정보 삭제
참고자료
https://www.redhat.com/ko/topics/api/what-is-a-rest-api
REST API(RESTful API, 레스트풀 API)란 - 서버, 구현, 사용법
REST API(RESTful API)란 REST 아키텍처의 제약 조건을 준수하는 애플리케이션 프로그래밍 인터페이스를 뜻합니다. api 서버, rest api 구현 및 사용법을 설명합니다.
www.redhat.com
https://www.youtube.com/watch?v=iOueE9AXDQQ
댓글