본문 바로가기
HTTP

[HTTP] HTTP API?

by happyhelen 2024. 4. 4.

 

들어가기 앞서..

 

API 설계에 앞서 하나 알아둬야할 것이 있다.

 

바로 URI 설계 시, 중요한 것은 리소스 식별할 수 있어야 한다는 것이다.

 

REST API와도 연관이 있는데, REST API의 핵심 두 가지는 다음과 같다.

 

첫째, URI는 정보의 리소스(자원)를 표현해야 한다.

 

두째, 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현해야 한다.

 

예를 들어, '회원을 등록' 또는 '회원을 조회' 기능을 API로 설계한다고 했을 때,

 

'회원'이 리소스가 되는 것이다.

 

동작은 HTTP 메소드로 표현할 것이고, URI에는 회원이라는 리소스를 매핑하는 것이다.

 


 

동작을 표현하는 HTTP METHOD

 

  1. GET : 조회
    • GET /mdmbers/{id}
    • 서버에 전달하고 싶은 데이터는 쿼리파라미터, 쿼리스트링으로 전달
    • 쿼리(Query)는 '문의' 또는 '물음표'라는 뜻을 가지고 있는데요. 쿼리 파라미터(Query Parameter)는 URL 뒤에 물음표(?)와 함께 붙는 키-값(Key-Value) 쌍입니다. 여러 개의 쿼리 파라미터를 전달하려면 파라미터 사이에 앰퍼샌드(&)를 추가해서 하나의 문자열(string)로 전달하세요. 쿼리 파라미터로는 문자열뿐만 아니라 숫자, 리스트 등 다양한 형태의 데이터를 넣을 수 있어요. (출처 : https://docs.tosspayments.com/resources/glossary/query-param)
  2. POST : 요청 데이터 처리, 주로 등록
      • POST /members HTTP/1.1
      • Content-Type : application/json
      • {
        • 전달하고자 하는 내용
      • }
    • body 를 통해 서버로 데이터를 전달하고, 서버는 요청받은 데이터를 통해 작업을 처리한다.
    • 컨트롤 URI : POST /orders/{orderid}/start-delivery 에서 statr-delivery 처럼 동작을 표현하는 부분을 URI에 사용하게 되는데, 값을 처리하는 용도 외에 프로세스의 상태를 변경하는 등 리소스만으로 URI를 다 표현하기 어려운 경우에 사용된다.
  3. PUT : 대체, 해당 리소스가 없으면 생성
  4. PATCH : 부분 변경
  5. DELETE : 삭제

 


 

HTTP API 사용 정리

 

  1. 서버 to 서버 통신 시 백엔드 시스템
  2. 아이폰, 안드로이드같은 앱 클라이언트
  3. 웹 클라이언트
    • HTML Form 대신에 Ajax
    • React, VueJS같은 웹클라이언트와 API 통신