오늘은 REST API에 대해서 알아보려고 한다.
만약, 회원가입을 한다고 가정할 때,
한국은 GET을 쓰고, 미국은 POST를, 인도는 PATCH를 쓴다고 가정하자.
이렇게 세계별로 다르다면 우리 사용자는 모든 규칙을 다 외워야 하는 번거로움이 있다.
이에 대한 공통을 추구하게 되는데, 이게 REST API이다.
REST API는 이름을 짓는 고민, 이름을 짓는 약속이라고 보면 된다.
REST: 지속 가능한
1. 일단 API가 뭘까?
Application Program Interface로 우리가 사용하는 라이브러리, 함수, 뷰 등이 포함된다.
인터페이스를 생각하면, UI(사용자와 컴퓨터 간의 중간, 즉 OS)도 있고, GUI, CUI 등 다양한 I를 들어볼 수 있다.
이를 비유하자면, '사람과 엘리베이터' 간의 관계를 생각하면 될 것 같다.
엘리베이터를 오고 가게 하려면 그 중간엔 버튼이 필요하다.
그 '버튼'이 인터페이스의 역할을 해준다고 보면 된다.
이러한 인터페이스가 웹앱에서 작용한다고 해서
어플리케이션 프로그램 인터페이스로 이해하면 쉽다.
2. REST
그럼 이제 REST에 대해서 본격적으로 보자.
REST -> '리소스,메서드,메세지' 로 구성되어 있다.
메서드 | 의미 | Idempotent |
POST | 생성 | no |
GET | 조회 | yes |
PUT | 수정 | yes |
PATCH | 일부 수정 | yes |
DELETE | 삭제 | yes |
idempotent는 여러번 수행해도 결과가 같은 경우를 의미한다.
예를 들어 이 포스팅이 조회수가 계속 바뀌는 API가 있다면,
http://메서드는 Idempotent 하다고 볼수 없고, 조회하다가 실패하였을 때는 올라간 조회수를 다시 -1로 빼줘야 한다. 즉 Idempotent 하지 않은 메서드에 대해서는 트렌젝션에 대한 처리가 별다른 주의가 필요하다.
'백엔드' 카테고리의 다른 글
Could not establish connection to "xx.xxx.xxx.xxx": Permission denied (publickey) 에러 (0) | 2021.01.30 |
---|---|
vscode로 ec2서버 연결하기 (0) | 2021.01.29 |
nvm 설치하기 (0) | 2021.01.26 |
git@github.com: Permission denied 에러 (0) | 2021.01.25 |
[nodejs]Error: Cannot find module 해결방법 (0) | 2021.01.24 |