좋은 RestAPI란 무엇인가?

상태
시작 전
담당자
날짜
숫자
0

목차

1.
API란 뭘까?
1-1. API의 사용예시
2.
REST API란?
2-1. REST API의 구성요소
2-2. API와 REST API의 차이점
3.
좋은 REST API란?
4.
결론 및 요약

1. API란?

API는 애플리케이션 간의 상호 작용을 가능하게 하는 인터페이스
API(Application Programming Interface)는 서로 다른 소프프트웨어 애플리케이션이 정보를 주고 받고 상호 작용할 수 있도록 만들어진 프로그래밍 인터페이스로써 하나의 소프트웨어가 다른 소프트웨어와 쉽게 소통할 수 있도록 돕는 도구입니다.
API를 통해 소프트웨어는 원하는 정보를 요청하거나 특정 기능을 사용할 수 있습니다.
API를 쉽게 이해하기 위해 식당의 메뉴판을 비유로 들어보겠습니다.
식당의 메뉴판은 손님이 메뉴판을 보고 원하는 음식을 주문합니다, 메뉴판은 손님과 주방을 연결하는 역할을 합니다.
그래서 왜 쓰는데?
소프트웨어의 개발을 쉽게 만들며, 시스템 간의 통합과 기능 확장을 가능하게 만들며, 개발에 들어가는 시간과 비용을 절감 시킬 수 있기 때문입니다.

1-1. API의 사용 예시

만약 배달앱과 같은 앱을 개발한다고 했을 때, 배달앱을 개발하는 것만으로도 시간이 많이 들어갈텐데, 배달이 가야하는 장소, 도착 예정 시간 등에 대해서 알아야하는 정보가 있기 때문에, 따로 지도 서비스도 개발해야만 할 것입니다. 하지만, 구글 지도 API와 같이 이미 만들어진 API를 활용한다면 이러한 개발 비용 및 시간을 단축할 수 있습니다.
이토록 보통은 기존의 API를 사용하는 것이 더 효율적일 것입니다, 이미 검증된 기능을 사용할 수 있기 때문입니다. 다만 개발하고자 하는 요구사항에 맞는 기능이 없다면 직접 구현할 수 도 있습니다.

2. REST API란?

클라이언트와 서버 간의 데이터를 교환을 원할하게 해주는 인터페이스
RESTRepresentational State Transfer의 약자로, 웹 기반의 아키텍처 스타일입니다. REST API는 이러한 REST 원칙을 따르는 API입니다. REST는 클라이언트와 서버 간의 상호작용을 단순하고 일관성 있게 만드는 것을 목표로 합니다.

2-1. REST API의 주요 구성 요소

1.
리소스 (Resource): URI(Uniform Resource Identifier)로 식별됩니다. 각 리소스는 특정 데이터나 기능을 나타내며, 예를 들어 https://api.example.com/users는 사용자 정보를 나타냅니다.
2.
HTTP 메서드 (HTTP Methods): CRUD 작업을 수행하는 데 사용됩니다. 주요 메서드는 다음과 같습니다.
GET: 리소스를 조회합니다. (예: GET https://api.example.com/users)
POST: 새로운 리소스를 생성합니다. (예: POST https://api.example.com/users)
PUT: 리소스를 전체 업데이트합니다. (예: PUT https://api.example.com/users/123)
PATCH: 리소스를 부분 업데이트합니다. (예: PATCH https://api.example.com/users/123)
DELETE: 리소스를 삭제합니다. (예: DELETE https://api.example.com/users/123)
3.
헤더 (Headers): 요청과 응답에 대한 메타데이터를 포함합니다.
예시로 Content-Type : application/json 은 요청 분문이 JSON 형식임을 나타냅니다.
4.
본문 (Body): 주로 POST와 PUT, PATCH 요청에서 데이터를 포함, 전달합니다.
예시로 새로운 사용자를 생성할 때 POST https://api.example.com/users 요청의 본문은 사용자 정보(JSON 형식)를 포함할 수 있습니다

2-2. API와 REST API의 차이점

API는 소프트웨어 간의 상호작용을 위한 도구, REST API는 이러한 상호작용을 웹 환경에서 수행하기 위한 특정 아키텍처 스타일
1.
범위와 정의:
API: 소프트웨어가 서로 상호작용할 수 있도록 하는 모든 형태의 인터페이스를 포함합니다. 예를 들어, 운영 체제 API, 라이브러리 API, 웹 서비스 API 등 다양한 형태가 있습니다.
REST API: API의 한 종류로, REST 아키텍처 스타일을 따르는 웹 서비스 인터페이스입니다. HTTP를 사용하고, 자원을 URI로 식별하며, 무상태(stateless) 방식으로 동작합니다.
2.
프로토콜:
API: 다양한 프로토콜과 전송 메커니즘을 사용할 수 있습니다. 예를 들어, HTTP, HTTPS, FTP, SMTP, TCP/IP 등을 포함합니다.
REST API: 주로 HTTP/HTTPS를 사용하여 클라이언트와 서버 간에 데이터를 주고받습니다. REST는 HTTP 메서드(GET, POST, PUT, DELETE 등)를 활용합니다.
3.
아키텍처 스타일:
API: 특정한 아키텍처 스타일을 따르지 않을 수 있으며, API 설계는 구현하고자 하는 기능과 목적에 따라 다양합니다.
REST API: REST 원칙(자원 기반, 무상태, 캐시 가능, 계층화된 시스템, 인터페이스 일관성)을 따르는 웹 서비스 인터페이스입니다.
4.
데이터 포맷:
API: XML, JSON, CSV, 바이너리 등 다양한 데이터 포맷을 사용할 수 있습니다.
REST API: 주로 JSON을 사용하지만, XML 등 다른 포맷도 지원할 수 있습니다. JSON이 더 경량화되어 널리 사용됩니다.
5.
예시:
API: 파일 시스템 API를 통해 파일을 읽고 쓸 수 있으며, 데이터베이스 API를 통해 데이터베이스 쿼리를 수행할 수 있습니다.
REST API: 구글 지도 API를 통해 지도를 불러오거나, OpenWeatherMap API를 통해 날씨 정보를 가져올 수 있습니다.

3. 좋은 REST API란?

그래서 좋은 REST API가 뭘까?
앞서 말했듯이 REST API는 클라이언트와 서버 간의 데이터 교환을 원활하게 해주는 인터페이스입니다. 좋은 REST API를 설계하기 위해서는 몇 가지 중요한 원칙과 특성을 준수해야 합니다.

4. 결론 및 요약