REST API
- RESTful API는 두 컴퓨터 시스템이 인터넷을 통해 정보를 안전하게 교환하기 위해 사용하는 인터페이스
- 인터넷상의 리소스를 효율적으로 관리하고 사용하기 위한 아키텍처 스타일을 제공하며, 웹 API의 일반적인 디자인 원칙을 정의한다.
- 클라이언트-서버 디커플링
- 캐시가능성
- 무상태
- 계층화 시스템
- 균일한 인터페이스
요청(request)에 모든 것이 있다.
- 요청을 통해 어떤 데이터(resourece)에게 어떤 동작을 하고, 어떤 응답을 바라는지 알 수 있다.
URI
어떤 데이터에게
- URI(Uniform Resource Identifier)는 인터넷에 있는 자원에 대한 식별자
- URL
- URL(Uniform Resource Locator)은 인터넷에 있는 자원을 식별하는 주소
- URN
- URN(Uniform Resource Name)은 인터넷에 있는 자원을 식별하는 이름
- Scheme
- 브라우저가 리소스를 요청하는 데 사용해야 하는 프로토콜
- http, https, ftp(파일전송)
- Domain name
- 웹 서버 또는 IP 주소
- Port
- 웹 서버의 리소스에 접근하는 데 사용되는 기술적인 게이트
- 몇몇 포트들은 약속으로 정해져있으며, 이 경우에는 생략 가능하다.
- http(80), https(443)
- Path to the file
- 웹 서버에 있는 리소스의 경로
- path parameter라고도 한다.
- Parameters
- 웹 서버에 제공되는 추가적인 정보
- & 기호로 구분된 키/값 쌍으로 주어진다.
- query parameter라고도 한다.
- Anchor
- 리소스 내부에서 일종의 책갈피 역할
- 브라우저에 해당 책갈피 지점의 콘텐츠를 표시하도록 지시한다.
HTTP mothod
어떤 동작을
- GET
- 데이터의 조회
- POST
- 데이터의 생성
- PUT
- 데이터의 수정
- DELETE
- 데이터의 삭제
추가적인 데이터
- HTTP header
- 요청 헤더는 클라이언트와 서버 간에 교환되는 메타데이터가 포함된다.
- 예를 들어, 요청 헤더는 요청 및 응답의 형식을 나타내고 요청 상태 등에 대한 정보를 제공합니다.
- 데이터
- 데이터를 생성, 수정하는 경우
- 파라미터
- 리소스에 대한 추가 정보를 요청하는 쿼리 파라미터.
- 클라이언트를 빠르게 인증하는 쿠키 파라미터.
response
어떤 응답을
데이터의 표현
- 요청에 대한 응답으로 JSON형식을 주로 사용한다.
- JSON(JavaScript Object Notation)
- 속성-값 쌍(attribute–value pairs), 배열 자료형(array data types) 또는 기타 모든 시리얼화 가능한 값(serializable value) 등을 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷이다.
- serialization(직렬화)
- 데이터 구조나 오브젝트 상태를 동일하거나 다른 컴퓨터 환경에 저장하고 나중에 재구성할 수 있는 포맷으로 변환하는 과정이다.
- 즉, python에서 사용하는 list, dictionary등의 객체를 다른 환경에서도 사용할 수 있도록 변환하는 것을 말한다.
- 과거에는 XML형식을 주로 사용했었다.
HTTP status code
- 요청이 성공했는지, 추가 조치가 필요한지, 오류가 발생했는지 등을 나타내는 표준화된 코드
- Informational responses (100 – 199)
- Successful responses (200 – 299)
- 정상 동작
- Redirection messages (300 – 399)
- Client error responses (400 – 499)
- 사용자 잘못
- Server error responses (500 – 599)
- 개발자 잘못
HTTP response status codes - HTTP | MDN
HTTP response status codes indicate whether a specific HTTP request has been successfully completed. Responses are grouped in five classes:
developer.mozilla.org
API 엔드포인트
- API 엔드포인트(API endpoint)는 API가 서비스를 제공하기 위해 네트워크 상에서 호출할 수 있는 특정 URL 주소를 의미한다.
- 즉, 엔드포인트는 API가 리소스에 접근하고 데이터를 조회, 생성, 수정, 삭제하는 등의 작업을 수행할 수 있게 하는 진입점이다.
[예시]
https://www.youtube.com/@ChimChakMan_Official
→ 유튜브에서 ChimChakMan_Ofiicial에 대한 정보
https://api.themoviedb.org/3/movie/{movie_id}/reviews
→ tmdb api 3 버전에서 movie_id에 해당하는 movie의 reviews 정보
https://www.google.com/search?q=아이유
→ google에서 search한 정보를 주는데 q(query)는 아이유
https://en.wikipedia.org/wiki/Product_manager#Product_manager_career_progression
→ en버전 wiki에서 Product_manager에 대한 정보를 줘. Product_manager_career_progression에 대한 설명
'CS' 카테고리의 다른 글
람다(lambda) 함수 (1) | 2024.03.21 |
---|---|
인증과 권한 (0) | 2024.03.18 |
DB에 대한 이해 및 DATA 모델링 (0) | 2024.03.13 |
Git/Github란? (0) | 2024.03.12 |
RAID (0) | 2024.01.26 |