[띵's 개념정리] RESTful API란?

API란?

(= Application Programming Interface)

🥕 소프트웨어가 다른 소프트웨어로부터 지정된 형식으로 요청, 명령을 받을 수 있는 수단


💭
우리 주변에는 기계 장치와 그 기계 장치를 제어할 수 있는 제어장치가 많이 있다.

예를 들면 컴퓨터 - 키보드 & 마우스 , TV - 리모컨
우측에 해당하는 것들을 기계와 인간 간의 소통창구, '인터페이스'라고 부른다.

(물론 사용자가 명령을 넣는 것 뿐만 아니라 결과를 받아오는 컴퓨터의 모니터, TV의 스크린도 인터페이스에 해당한다.)


소프트웨어의 영역에서는 UI란 용어를 사용한다.
버튼, 스크롤바, 슬라이더, 브라우저 창 등 사용자들이 프로그램/사이트/앱을 원하는 대로 제어하고 정보를 확인할 수 있는 소프트웨어적인 장치들을 UI(User Interface)라고 한다.
UI는 소프트웨어와 인간의 소통을 위한 것이다.

💭💭
그렇다면 IT 세계에서는?!

우리 눈에 보이지 않는 영역들이 매--우 많이 존재한다. 인간과 (??)뿐만 아니라 기계와 기계, 소프트웨어와 소프트웨어 사이에도 많은 정보 요청과 교환이 이루어지기 때문에 이들을 위한 소통 창구도 필요하다.

이처럼 🥕 소프트웨어가 다른 소프트웨어로부터 지정된 형식으로 요청, 명령을 받을 수 있는 수단 을 API(Application Programming Interface)라고 한다.



REST API에 대해서

🥕 REST의 특징
각 요청이 어떤 동작이나 정보를 위한 것인지 그 요청의 모습 자체로 추론이 가능해야 함


🥕 REST API
(http에 요청을 보낼때 어떤 URI, 어떤 메소드를 사용할 지에 대한 약속/규칙/형식)


💭 좀더 자세히 알아보는 REST의 특징

ex. 
https://(도메인)/classes/2/students?sex=male
>> 교실 > 2반 > 학생들 > 성별이 남자인 학생들

https://(도메인)/classes/2/students?page=2&count=10
>> 교실 > 2반 > 학생들 > 한 페이지에 10명씩 불러왔을 때 2페이지에 있는 학생들

# 이런 형태의 구분자를 URI라고 한다.

그러나 우리는 단순히 조회 작업뿐만 아니라 생성, 수정, 삭제 등의 다양한 작업을 해야 한다. 이를 통틀어서 CRUD라고 부른다

C reate 생성
R ead 조회
U pdate 수정
D elete 삭제

일반적으로 서버에 정보를 요청할 때는 HTTP라는 규약에 따라 신호를 전송한다.
REST API에서는 GET, POST, DELETE, PUT, PATCH를 사용한다. (그리고 여기서 POST, PUT, PATCH에는 body라는 주머니가 있어서 GET, DELETE보다 많은 양을 안전하게 감춰서 보낼 수 있다. 사실 용도도 제한되어 있지는 않음.)

그러나 혼자 개발하는 것이 아니기 때문에 누구든지 각 요청의 의도를 쉽게 파악할 수 있도록 하기 위해 RESTful하게 API를 만들어야 한다. 즉, 목적에 따라 구분해서 사용할 줄 알아야 한다.

GET : 정보 확인
POST : 정보 새로 생성
PUT : 정보를 통째로 변경 (ex. 한 사람에 대한 이름, 키, 나이 등의 정보를 모두 수정)
PATCH : 정보 중 일부를 특정 방식으로 변경
DELETE : 삭제

URL 맨 마지막에 /create, /read, /update, /delete가 하나하나 붙는다면 깔끔하지 않다는 점에서 REST의 규칙 중 하나로 URL은 명사로 끝내야 한다는 것이 있다.

즉 REST API는 🥕 http에 요청을 보낼때 어떤 URI, 어떤 메소드를 사용할 지에 대해 개발자들 사이에 널리 지켜지는 약속 이다.


Reference

https://www.youtube.com/watch?v=iOueE9AXDQQ
https://velog.io/@couchcoding/%EA%B0%9C%EB%B0%9C-%EC%B4%88%EB%B3%B4%EB%A5%BC-%EC%9C%84%ED%95%9C-RESTful-API-%EC%84%A4%EA%B3%84-%EA%B0%80%EC%9D%B4%EB%93%9C

좋은 웹페이지 즐겨찾기