ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • HTTP API 설계하기
    개발 2021. 3. 18. 01:17

    클라이언트에서 서버로 데이터 전송할 때 크게 2가지 전달 방식을 사용한다

     

    쿼리 파라미터를 통한 데이터 전송

    • GET
    • 주로 정렬 필터 (검색어)

     

    메세지 바디를 통한 데이터 전송

    • POST, PUT, PATCH
    • 회원 가입, 상품 주문, 리소스 등록, 리소스 변경

     

    클라이언트에서 서버로 데이터 전송을 하는 4가지 상황

     

    정적 데이터 조회

    쿼리 파라미터 미사용

    이미지나 정적 텍스트 문서를 전달.

    조회는 GET METHOD를 사용하지만 단순히 리소스 경로를 사용해 조회가 가능하다.

     

    동적 데이터 조회

    쿼리 파라미터 사용

    서버는 쿼리 파라미터를 기반으로 정렬 필터를 적용해 결과를 동적으로 생성해서 보내준다.

    주로 검색, 게시판 목록에서 정렬 필터 (검색어)

    조회 조건을 줄여주는 필터, 조회 결과를 정렬하는 정렬 조건에 주로 사용한다.

    조회는 GET METHOD를 사용한다, GET은 Query Parameter를 사용해 데이터를 전달하기 때문이다.

     

    HTML Form Data 전송

    POST 전송 - 저장

    GET으로 보내도 받을 수는 있지만 보안적인 측면에서 좋지 않음, POST를 사용하는 것이 원칙.

    Multipart/FormData - 저장 (파일 전송)

     

    HTML Form Submit시 POST METHOD를 통한 전송

    ex) 가입, 주문, 변경

    Content-Type: application/x-www-form-urlencoded 사용

    form의 내용을 메시지 바디를 통해 전송 (key=value, 쿼리파라미터 형식)

    전송 데이터를 url encoding 처리한다.

     

    Content-Type: multipart/form-data

    파일 업로드 같은 바이너리 데이터 전송 시 사용

    다른 종류의 여러 파일과 Form의 내용을 함께 전송 가능

     

    HTML Form Submit은 GET, POST만 가능하다.

     

    HTTP API DATA 전송

    Server to Server

    Back-End System 통신

    App Client

    Iphone, Android 

    Web Client

    HTML에서 Form 대신 JS를 사용한 통신 (AJAX, http, Axios..)

    ex) React, Vue.js 같은 Web Client API 통신

    POST, PUT, FATCH : Message Body를 통한 API 통신

    GET : 조회, 쿼리 파라미터로 데이터 전달

    Content-Type: application/json을 주로 사용한다 사실상 표준임

    text, xml, json ....

     

     

    HTTP API - Collection

    POST 기반 등록

    ex) 회원 관리 API 제공

    HTTP API - Store

    PUT 기반 등록

    ex) 정적 컨텐츠 관리, 원격 파일 관리

    HTML FORM 사용

    웹 페이지 회원 관리

     

     

     

    '개발' 카테고리의 다른 글

    4xx Client Error  (0) 2021.05.05
    3xx Redirection  (0) 2021.05.05
    HTTP METHOD - PUT&PATCH&DELETE  (0) 2021.02.02
    HTTP METHOD - GET & POST  (0) 2021.02.02
    HTTP API - Intro  (0) 2021.02.02
Designed by Tistory.