728x90
React를 공부하다가 REST API를 처음 접해서 찾아보다보니 면접에도 많이 나온다고 해서 정리를 해보기로 했다.
간단하게 REST를 기반으로 만들어진 API를 의미 한다고 하는데 그럼 API가 뭔지 부터 공부하고 가자
🤔 API 란 ?
소통할 수 있는 창구
a소프트웨어가 b라는 소프트웨어로부터 지정된 형식으로 요청,명령을 받을 수 있는 수단
더 쉽게 말해보면,
어떤 학원에 정보를 알고 싶다! 그럼 약속된 형식이 있어야지 정보를 주고 받고 할 수 있다! 이게 바로 API이다 !
API는 알아봤는데 그럼 REST는 무엇일까 ?
🤔 REST 란 ?
HTTP URI을 통해 자원을 명시하고
HTTP Method(POST,GET,PUT,DELETE,PATCH)를 통해
해당 자원(URI)에 대한 CRUD를 적용하는 것을 의미한다!
만약, 학원에 반과 학생들에 대한 API를 만들때 아래와 같이 만들어도 이에 맞춰 요청을 보내는 앱을 짜면
서비스의 기능 자체를 문제 없지만, 이후 인계 받을 개발자나 이것을 이용해서 제품을 만들때에는 일하기 힘들다!
학원에 반과 학생들에 대한 API를 만들때
http://(도메인)/1
학원의 반 리스트 요청
http://(도메인)/hello
반의 학생들 리스트 요청
http://(도메인)/dobby
학생의 정보 리스트 요청
그래서 아래와 같이 URI를 통해 자원을 명시하면되는데,
여기서 각 요청이 어떤 동작이나 정보를 위한 것인지를 요청 모습 자체를 추론 가능하다는 REST 특징이 있다.
아까 위에서 작성한 것보다는 쉽게 추론이 가능한 것을 알 수 있다.
학원 DB에게 정보를 보내달라는 요청을 할 때
http://(도메인)/classes
학원에 반들의 내용을 요청 받는거라고 추론 가능
http://(도메인)/classes/2
반들 중 index번호가 2인 반 번호의 정보를 요청 받을거라고 추론 가능
http://(도메인)/classes/2/students
2반의 학생들의 정보를 받을거라고 추론 가능
HTTP Method를 이용해서 누구든 각 요청의 의도를 쉽게 파악할 수 있게 목적에 따라 구분해서 만들 수 있다.
POST | 데이터 생성 | http://(도메인)/classes/2/students/14 | 2반의 학생의 14번인 학생을 생성할거라고 추론 가능 |
PATCH | 데이터 변경 | http://(도메인)/classes/2/students/14 | 2반의 학생의 14번인 학생을 변경할거라고 추론 가능 |
GET | 데이터 조회 | http://(도메인)/classes/2/students | 2반의 학생들의 데이터를 조회할 수 있을 거라고 추론 가능 |
PUT | 데이터 변경 | http://(도메인)/classes/2/students/14 | 2반의 학생의 14번인 학생을 변경할거라고 추론 가능 |
DELETE | 데이터 삭제 | http://(도메인)/classes/2/students/14 | 2반의 학생의 14번인 학생을 삭제할거라고 추론 가능 |
▶ 참고한 영상
근데, 여기서 REST API창시자인 로이필딩은 CRUD에 대한 내용은 없으며
HTTP 메서드는 REST가 아니라 웹 아키텍쳐 스타일의 일부다라고 정의를 했다.
혹시 원론적인 내용을 알고 싶다면 아래 영상을 확인해보면 좋을 것 같다
▶ 참고한 영상
728x90
'ON > 개발지식' 카테고리의 다른 글
[개발지식] 자바 백엔드 웹 기술 역사 (Servlet에서 Spring Boot까지 이야기) (0) | 2023.11.06 |
---|---|
빌드, 웹배포하기 (0) | 2023.10.04 |
[깃허브] 조원들과 프로젝트 공유하기 (0) | 2023.07.06 |
소스트리 하는 방법 (0) | 2023.06.30 |
[Git] 형상 관리 시스템 설치 방법 (0) | 2023.06.27 |