티스토리 뷰
API(Application Programming Interface)란?
API는 어플리케이션과 프로그램 간의 상호작용을 가능하게 해주는 인터페이스다.
즉, 하나의 소프트웨어가 다른 소프트웨어의 기능을 사용할 수 있도록 정해진 규칙을 제공한다.
: 지하철 도착어플?카카오맵, 네이버 지도, 개인 어플
ex)서울 교통공사 데이터베이스 -> 개인
*인터페이스란 : 중간에서 양쪽에 있는 친구들을 중재/매개체가 되어주는 역할
ex) GUI : 컴퓨터(프로그램)한테 명령을 내릴때, 그래픽을 사용해서 명령을 내리는 방식
CLI : 명령어 문장으로 컴퓨터에게 명령을 내리는 것.
HTTP 프로토콜 템플릿
- head
- body
1) 전달해줄 데이터/화면/...
2)이 데이터 좀 줄래?+"목적"(조회, 등록 등)
REST API(Representational State Transfer API)
REST API는 HTTP 프로토콜을 기반으로 동작하는 API 설계 원칙으로, REST 아키텍처의 원칙을 따르는 API다.
무상태성(Stateless)
- 서버는 클라이언트의 상태를 저장하지 않는다.
- 각 요청은 독립적으로 처리되며, 필요한 데이터는 요청에 포함되어야 한다.
클라이언트-서버 구조(Client-Server Architecture)
- 클라이언트와 서버는 독립적으로 동작하며, 서로의 내부 구현을 알 필요가 없다.
계층형 시스템(Layered System)
- 클라이언트는 직접 서버와 통신하는 것이 아니라, 여러 계층을 거쳐 데이터를 주고받을 수 있다.
캐시 가능(Cacheable)
- 응답 데이터를 캐싱하여 성능을 최적화할 수 있다.
일관된 인터페이스(Uniform Interface)
- 일관된 URL 형식과 HTTP 메서드를 사용하여 표준화된 방식으로 리소스에 접근한다.
URL(Uniform Resource Locator)이란?
: 인터넷 상에서 웹 페이지가 어디있는지 위치를 알려주는 것 뿐 아니라, 데이터 연산 해달라고 서버에 요청을 보내는 방법.
-> 쉽게 말해서, 웹 페이지 주소라고 할 수 있습니다.
인터넷에서 특정 리소스를 찾을 수 있는 주소를 의미한다.
RESTful API에서는 URL을 통해 리소스를 명확하게 식별하며, 다음과 같은 규칙을 따른다.
- 소문자만 사용(대문자는 사용하지 않음)
- 하이픈(-) 사용 가능, 언더바(_) 사용 불가능
- 마지막에 슬래시(/) 포함하지 않음
- 행위(목적)를 포함하지 않음 (예: /getUsers → /users)
- 파일 확장자 포함하지 않음 (.json, .xml 등 생략)
- 리소스명은 복수형 사용 (예: /user → /users)
URL + method 연습
http://localhost:8888/post product - 상품 등록 - > "POST"/product
http://localhost:8888/select-all-products - 전체 상품 조회 -> "GET"/products
http://localhost:8888/deleteallProducts - 전체 상품 삭제 -> "DELETE"/products
ex) 쇼핑몰 메인 페이지 틀 -> 전체 상품 조회 API -> 전체 상품 데이터를 받고 -> 받은 데이터를 화면에 뿌려주기
상품 상세 페이지 틀 -> 상품 1 개별 조회 -> 데이터를 받아서 -> 틀에 맞게 뿌려주기
상품 관리 페이지 틀 -> 전체 상품 조회 APT -> 전체 상품 데이터 ...
상품 수정 페이지 틀 -> 상품 1 개별 조회 API //완료 -> 상품1 수정 API
URL + method 연습 2 "API 설계"
1. 상품 전체 조회 GET
http://localhost:8888/products
2. 상품 id 개별1 조회 GET
/products/{id}
http://localhost:8888/products/1
3. 상품 id 개별2 조회 GET
http://localhost:8888/products/2
4. 상품 개별 수정 PUT
/products/{id}
cf. 복수형으로 표현하는 이유 :
상품 들 중에 id 값을 가지는 개별 데이터
통일감
HTTP 메서드(HTTP Method)
HTTP 메서드는 클라이언트가 서버에 요청을 보낼 때 사용하는 명령어다.
- GET: 리소스를 조회할 때 사용
- POST: 리소스를 생성할 때 사용
- PUT / PATCH: 리소스를 수정할 때 사용
- DELETE: 리소스를 삭제할 때 사용
REST API는 URL과 HTTP 메서드를 조합하여 원하는 리소스를 조회, 생성, 수정, 삭제할 수 있도록 설계된다.
