REST API란??
- API : 소프트웨어가 다른 소프트웨어로부터 지정된 형식으로 요청, 명령을 받을 수 있는 수단을 Application Programming Interface 라고 한다.
- REST API는 정보들이 주고받아지는 데 있어서 개발자들 사이에 널리 쓰이는 일종의 형식(어떤 기술이나 제품이 아니라 형식이다!) = REST란 형식의 API
- (참고) 과거의 SOAP이란 형태의 복잡한 형식를 대체함
- REST의 가장 중요한 특성은 각 요청이 어떤 동작이나 정보를 위한 것인지를
그 요청의 모습 자체로 추론 가능하다는 것
https://(사이트도메인)/1
<- 1을 보고 어떤 요청을 했는지 모름
https://(사이트도메인)/student_list
<- 대략 학생 list를 요청하는 것으로 추론 가능
- RESTful하게 만든 API는 요청을 보내는 주소만으로도 대략 이게 뭘 하는 요청인지 파악이 가능
- RESTful?
- REST한 규칙 및 형식들을 지켜서 만들었을 경우 RESTful하다고 함
- RESTful은 일반적으로 REST라는 아키텍처를 구현하는 웹 서비스를 나타내기 위해 사용되는 용어이다.
- ‘REST API’를 제공하는 웹 서비스를 ‘RESTful’하다고 할 수 있다.
- RSET API에서는 4가지(CRUD) 혹은 5가지 기능을 주요 사용
- CRUD : 소프트웨어(Software)가 가지는 기본적인 데이터 처리 기능을 묶어서 일컫는 말
- CREATE 생성
- READ 조회
- UPDATE 수정
- DELETE 삭제
- 기타
- 결국 REST API란, HTTP 요청을 보낼 때, 어떤 URI에 어떤 메소드를 사용할지(+기타) 개발자들 사이에 널리 지켜지는 약속이다.
메소드 종류(CRUD가 담겨있음)
- 1) GET : 정보를 요청하기위해 사용(Read)
- 2) POST : 정보를 입력하기위해 사용(Create)
- 3) PUT : 정보를 업데이트하기위해 사용(Update)
- 4) DELETE : 정보를 삭제하기위해 사용(Delete)
- POST, PUT, PATCH에는 BODY라는 주머니가 있어서 GET, DELETE보다 많은 정보를 담을 수 있음(& 비교적 안전하게 감춰서 실어보낼 수 있음)
- 사실 위 메소드들의 기능이 특정 용도에 제한되어 있는 것은 아님
- POST 하나로도 데이터를 읽고, 쓰고, 수정(업데이트), 지우고 까지 다 할 수 있음. 하지만, 누구든 각 요청의 의도를 쉽게 파악할 수 있도록 RESTful하게 API를 만들기 위해서는 이들을 목적에 따라 구분해서 사용해야 함
- (참고) PUT PATCH 어떻게 다른가?
- PUT : PUT은 정보를 통째로 갈아끼울 때
- PATCH : 정보 중 일부를 특정 방식으로 변경할 때
- (참고2) 아래 스샷과 같이 표기하면 깔끔하지 않은 문제가 있기 때문에 URI는 동사가아닌 명사로 표기가 이루어져야함
- 동사랑 함께 쓴 경우
- 명사들로 이루어 진 경우
References