API ?
- 두 개 이상의 프로그램(소프트웨어 시스템)이 통신하기 위해 따라야 하는 규칙
어떤 프로그램(혹은 서비스)이 다른 프로그램에 요청을 보내고, 그 요청에 대한 결과를 받는 방법을 정리한 규칙.
REST API(RESTful API)
- 웹 데이터 전송 방식 중 하나
- API의 엔드포인트 구조를 구현하는 방식
- HTTP 프로토콜에서 제공하는 기본 method들(GET, POST, PUT, DELETE)을 사용해서 두 머신이 네트워크를 통해 데이터를 주고 받는 방식이다.
- REST 방식을 구현하는 웹 서비스를 RESTful한 웹 서비스라고 한다.(그래서 제약들을 모두 만족해서 만들면 RESTful하다 고 한다)
- API에서 전송하는 자원(resource)을 URI로 표현하고 해당 자원에 행하고자 하는 의도를 HTTP메소드로 정의 각 엔드포인트는 리소스를 표현하는 고유의 URI 주소를 가지고 있으며, 해당 리소스에 행할 수 있는 행위를 표현하는 HTTP메소드를 처리할 수 있게 된다.
특정 리소스(명사)에 HTTP method(동사)를 반영하여 CRUD(Create/Read/Update/Delete)를 수행하는 방식
- 즉, URI 주소로 HTTP 메소드, 원하는 정보를 요청해 endpoint의 기능이 동작하면서 필요한 정보와 status code를 client server로 보내준다.
이 모든 일련의 과정을 'RESTful API방식으로 웹 데이터가 전송된다'고 표현한다.
REST API의 파라미터
1. HTTP header
역할: 요청에 대한 메타데이터를 전달합니다. 클라이언트가 누구인지, 어떤 데이터 형식을 사용하는지, 인증 정보 등을 포함합니다.
• 특징: 눈에 보이지 않으며 요청 헤더의 일부로 전달됩니다.
예시: 인증정보, 데이터 형식 지정
GET /products
Host: api.example.com
Authorization: Bearer abcdef123456
Content-Type: application/json
• Authorization: Bearer 토큰 방식으로 인증 정보를 보냄
• Content-Type: JSON 형식으로 데이터를 보낸다고 알림
• 서버는 헤더를 읽고 사용자를 인증한 후 데이터를 처리
2. Query paramter
• 역할: URL 뒤에 key=value 형식으로 데이터를 전달합니다. 주로 검색 조건이나 필터링에 사용됩니다.
• 특징: ? 뒤에 작성되며, 여러 값을 사용할 땐 &로 연결합니다.
GET /products?category=electronics&sort=price_asc
• 설명:
• category=electronics: 전자제품 카테고리의 데이터를 요청
• sort=price_asc: 가격 오름차순으로 정렬
• 서버는 Query Parameter를 읽고 해당 조건에 맞는 데이터를 반환
가끔 path 파라미터와 query 파라미터 중 무엇을 사용할지 고민하곤 하는데, REST API의 모범을 준수하자면 path 파라미터는 특정 리소스를 정의할 필요가 있을 때, query 파라미터는 정렬 혹은 필터링이 필요할 때 사용한다.
3. Path parameter
• 역할: URL의 경로 일부로 데이터를 전달합니다. 특정 리소스를 식별할 때 사용됩니다.
• 특징: URL에 동적으로 포함되며, 보통 중괄호 {}로 표시된 자리를 채웁니다.
GET /products/123
• 설명:
• 123: 특정 상품의 ID를 나타냄
• 서버는 Path Parameter를 읽고 ID가 123인 상품 데이터를 반환
• URL 설계 방식:
• /products/{id}: 특정 상품 조회
• /users/{userId}/orders/{orderId}: 특정 사용자의 특정 주문 조회
4. Body parameter
• 역할: 요청 본문(body)에 데이터를 포함하여 전송합니다. 주로 POST, PUT, PATCH 요청에서 사용됩니다.
• 특징: 대량의 데이터나 구조화된 데이터를 JSON, XML 등의 형식으로 보냅니다.
POST /products
Content-Type: application/json
Body:
{
"name": "New Product",
"price": 10000,
"category": "electronics"
}
• 설명:
• Body: 상품 이름, 가격, 카테고리 정보를 포함
• 서버는 본문 데이터를 읽고 새로운 상품을 추가
https://velog.io/@hannabananah/API%EC%99%80-RESTful-API
API와 RESTful API
두 개 이상의 프로그램(소프트웨어 시스템)이 통신하기 위해 따라야 하는 규칙API는 특정 프로그래밍 언어로 작성된 라이브러리일 수도 있고 네트워크/프로세스 간 통신 시에 일정 규칙에 맞춰
velog.io
REST API(RESTful API)-파라미터의 종류와 개요
앞서 API와 RESTful API에 대해서 알아보았다. •HTTP header: HTTP가 빌트인으로 갖추고 있는 key㎽value 형태㏗정확히는 field name, field value㏘의 데이터. 아무 문자열을 field name으로 사용하면 안된다. 기본
velog.io
'STUDY' 카테고리의 다른 글
실행 컨텍스트 (1) | 2025.01.21 |
---|---|
reflow와 repaint의 차이점 (0) | 2025.01.20 |
클로저(Closure)란? (1) | 2025.01.17 |
[라이브러리] react-spring 애니메이션 구현 (1) | 2024.09.29 |
[라이브러리] react hook form 유효성 검사하는 폼 만들기 (2) | 2024.09.18 |