네트워크

API 란?

SH.DevBlog 2023. 11. 10. 14:47

# API 정의

  • 두 서비스가 서로 통신할 수 있는 방법이다.
  • 예시) 휴대폰 날씨 앱에서 기상청 시스템과 통신하여 날씨 정보를 가져오는 것

# API 종류

  • SOAP API 
    • 클라이언트와 서버가 XML을 사용하여 통신하는 방식
    • 과거에 많이 사용되었으며 유연성이 많이 떨어진다.
  • RPC(Remote Procedure Call) API
    • 원격 프로시저 호출방식
    • RPC API를 사용하면 개발자가 외부 서버의 원격 함수를 마치 해당 소프트웨어 로컬에 있는 것처럼 직접적으로 호출할 수 있다.
    • 장점
      • 직관적이고 단순한 상호작용 방식을 지원한다.
      • RPC는 기능을 추가하기 쉽다. API 연동이 필요한 경우 단순히 end point만 설정해주면 된다.
      • 다양한 언어를 가진 환경에서 쉽게 확장 가능
    • 단점
      • RPC는 기반 시스템과의 결합도가 높다.
      • 호출 실행과 반환 시간이 보장되지 않는다.
  • Websocket API
    • WebSocket API는 클라이언트 앱과 서버 간의 양방향 통신을 지원
    • 연결된 상태를 유지하기 때문에 그에 따른 리소스가 든다.
    • 연결된 상태가 끊겨졌을 때의 예외처리를 해줘야한다.
  • REST API
    • REST를 기반으로 만들어진 API
    • 클라이언트가 서버에 요청을 데이터로 전송합니다.
    • 서버가 클라이언트의 요청을 받고 이에 따른 비즈니스를 수행하여 결과를 반환하는 구조

# REST 란?

  • HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고 HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 통해 해당 자원에 대한 행위를 표현하는 것이다.

장점

  • HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능하다.
  • Client - Server 구조 이므로 역할과 책임이 명확하다.
  • REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악할 수 있다.

단점

  • 표준이 자체가 존재하지 않아 정의가 필요하다.
  • HTTP Method 형태가 제한적이다.

# REST API 설계 예시

 

 

참고 사이트 : https://khj93.tistory.com/m/entry/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-REST-API%EB%9E%80-REST-RESTful%EC%9D%B4%EB%9E%80