API는 소프트웨어 애플리케이션이 서로 상호작용할 수 있도록 하는 일련의 규칙과 정의를 의미한다.
API는 다양한 시스템과 응용 프로그램 간의 데이터 교환 및 기능 호출을 가능하게 하는데,
특히 QA는 클라이언트의 요청에 대한 서버의 응답을 검증할 때 많이 사용한다.
동시에 API엔드포인트에 요청 부하를 발생시켜 API 성능을 확인하거나 보안테스트가 가능하고
FE나 클라이언트가 구축되기 전, 백엔드 시스템의 내부 설계 및 통합이 완료된 후
API 엔드포인트에 대한 테스트를 수행함으로서, 개발 초기 이슈 대응을 통해 개발 생명주기를 줄일 수 있다.
이를 통해 초기 품질 확보 및 API성능 향상 및 개선이 가능하기 때문에 API에 대한 지식이 있으면 좋다.
API의 구조
API의 구조는 주로 요청과 응답으로 구성된다.
요청은 클라이언트에서 서버로 보내는 메시지를 의미하고, 응답은 서버에서 클라이언트로 반환하는 메시지를 의미한다.
- 엔드포인트(Endpoint) : API의 URL로, 특정 리소스에 접근하기 위해 사용된다.
- HTTP 메서드(HTTP Methods) : API 요청에서 수행할 작업을 의미한다.
- 헤더(Headers) : 요청 및 응답의 메타 데이터를 포함한다.
- 본문(Body) : 요청 또는 응답의 실제 데이터를 포함한다.
- 상태 코드(Status Codes) : 응답의 결과를 의미한다.
API의 종류
- SOUP API
- 그 자체가 프로토콜이며, XML을 사용하여 클라이언트와 서버간 메시지를 교환한다.
- 웹 서비스의 통신에 주로 사용되었다.
- 강력한 보안 및 츠랜잭션 관리 기능을 제공한다.
- 유연성이 떨어져 과거에 많이 사용되었다.
- RPC API
- 원격 프로시저 호출이다.
- 클라이언트가 메서드를 호출하면, 서버에서 함수나 프로시저를 완료 후 호출 결과를 클라이언트로 전송한다.
- 여러가지 RPC API 유형이 있지만, 구글에서 개발한 고성능 RPC(gRPC)를 많이 사용한다.
- 대기시간이 낮지만 처리량이 높다는 장점이 있다.
- Websocket API
- JSON을 사용한 데이터를 전달하는 최신 웹 API
- 요청을 받고 응답하는 REST API와 달리, 클라이언트와 서버간 양방향 통신을 지원한다.
- 서버가 연결된 클라이언트에 콜백 메시지를 전송할 수 있다는 장점이 있다.
- REST API
- HTTP프로토콜 기반 API로, 웹에서 가장 많이 사용되고 최적화되어있다.
- 리소스는 API로 표현하고 리소스 상태는 HTTP 메소드를 활용해 구분한다.
- JSON 을 활용하여 클라이언트가 서버에 요청을 데이터로 전송한다.
- 서버는 내부 함수를 사용하여 출력 데이터를 클라이언트로 반환한다.
API의 유형.
API는 접근 범위와 사용 목적에 따라 여러 유형으로 나뉘어진다.
- Private API
- 외부에 노출되지 않는, 조직 내부에서만 사용하도록 제한된 API
- 내부 시스템 간의 통신이므로, 보안이 매우 중요하다.
- Public API
- 누구나 사용할 수 있도록 공개된 API.
- Open API라고도 불리며, 개발자 포털이나 웹사이트를 통해 접근 가능하다.
- Partner API
- 일부 유저에게만 접근권한이 부여된 API.
- 일반적으로 B2B 파트너 관계에서 주로 사용된다.
- Internal API
- 조직 내 다양한 팀 또는 부서간 통신을 위해 사용되는 API
- 일반적으로 재사용 가능성이 높아 개발 효율성을 높이고 중복 코드를 줄이는 역할을 한다.
- Composite API
- 여러 API의 요청을 결합하여, 하나의 호출로 응답하는 API
- 호출 수가 최소한으로 유지되어, 데이터 사용량을 줄일 수 있고, 애플리케이션 효율성이 높아진다.
- 묶음으로 제공되는 애플리케이션에 주로 사용된다.
'postman&API' 카테고리의 다른 글
postman 개별 API 성능 지표를 확인하기. (0) | 2024.07.30 |
---|---|
postman HTTP 메소드 정리 (get, post, put, patch, delete, head, options) (0) | 2024.06.17 |
python을 사용하여 api response 값을 2번 받아 필요한 내용 출력하기. (0) | 2024.06.15 |
python을 사용하여 api 검색 결과값을 excel로 저장하기 (1) | 2024.06.14 |
python을 사용하여 api 검색 결과값을 그래프로 만들기. (1) | 2024.06.13 |