1일 1개념정리 24.08.09.금 ~
큰 결정에 큰 동기가 따르지 않을 때도 있다. 하지만 큰 결심이 따라야 이뤄낼 수 있다.
무조건 무조건 1일 1개의 개념 정리하기 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#28. Restful API
RestAPI란 REST(= REpresentational State Transfer) 아키텍처를 기반으로 한 API를 의미한다. REST는 웹 서비스에서 데이터를 전송하는 방식 중 하나이고 특히 HTTP 프로토콜을 기반으로 작동한다. 근데 채용공고를 보다가 자격요건에 이런 문구가 있었다.
우대사항 : "Restful API에 대한 이해도"
우리가 개발하며 RestAPI를 쓴다 이런 이야기를 자주 하긴 했는데, 정확히 이것에 대해 어떤 이해도를 말하는 것일까?? 그리고 무슨 내용을 알아야 Restful API에 대한 이해도가 높다고 이야기할 수 있는 것일까 ?? 정확히 알아봅시다.
Rest API 원칙
RestAPI는 다음과 같은 원칙이 있다.
- Stateless : 각 요청은 독립적으로 처리되어야 하고 서버는 클라이언트의 상태를 저장하지 않는다.
- Client-Server 구조 : 클라이언트와 서버는 분리되어 있어야하고, 클라이언트는 UI 및 인터페이스에 집중하고 서버는 데이터와 비즈니스 로직을 관리해야한다.
- Cacheable : 클라이언트는 서버의 응답을 캐시하여 요청 수를 줄일 수 있다.
- 계층 구조 : 애플리케이션이 여러 계층으로 구성될 수 있어서 시스템을 모듈화하고 유지보수를 쉽게 할 수 있다.
HTTP 메소드
RESTful API는 HTTP 메소드(GET, POST, PUT, DELETE 등)를 사용하여 데이터를 전송하는 게 큰 특징이다. 아마 많은 사람들이 rest api = http 메소드 정도로 생각하기도 할 것이다. 간단히만 설명하고 넘어가겠다.
- GET: 리소스를 조회
- POST: 생성
- PUT: 업데이트
- PATCH : 부분 업데이트 (패치노트 생각하면 됨)
- DELETE: 삭제
자세한 내용은 여길 참고하자.
https://100won-developer.tistory.com/category/CS%20%EA%B0%9C%EB%85%90/HTTP
URI 설계
RESTful API에서 리소스는 URI로 표현된다. 그래서 리소스를 명확하게 식별하고 접근할 수 있도록 URI를 설계해야한다. 직관적이고 명확하게 표현하는 리소스 명명법이 따로 있다.
ex) GET/user/123 : 유저의 정보가(이름 혹은 id 등) 123인 유저를 조회하라고 유추할 수 있다.
ex) POST/user : 유저 생성하라고 유추할 수 있다.
그리고 API의 버전을 나타낼 수도 있다. 새 기능을 추가할 땐 버전을 명시하는 것도 중요하다. 실제로 네이버의 메일을 들어가봐도 이렇게 버전이 url에 표시된다.
ex) GET /v1/users/123 : 첫 번째 버전의 API
자세한 내용은 다음을 참고하자.
응답 코드
HTTP 상태 코드는 API의 상태와 성공/실패 여부를 나타낸다. 상태 코드를 적절하게 사용해야 정확히 어떤 상태인지 알 수 있다. 몇개의 상태코드만 보자.
- 200 OK : 요청이 성공적으로 처리됨
- 400 Bad Request : 잘못된 요청 (클라이언트 오류)
- 401 Unauthorized : 인증이 필요함. 인증 안했는데 접근 요청했을 때
- 404 Not Found : 요청한 리소스가 없음
- 500 Internal Server Error : 서버에서 처리 중 오류 발생
자세한 내용은 다음을 참고하자 !!
'1일 1개념정리 (24년 8월~) > 네트워크, 클라우드' 카테고리의 다른 글
1일1개 (61) - 서브넷 마스크 계산하기 (0) | 2024.10.15 |
---|---|
1일1개 (52) - 내가 만든 쿠키, 네가 만든 세션 (2) | 2024.10.06 |
1일1개 (47) - Azure 서비스 알아보기 (1) | 2024.10.01 |
1일1개 (46) - 서브넷 마스크 (0) | 2024.09.30 |
1일1개 (29) - Azure (0) | 2024.09.08 |