[HTTP] HTTP API 만들어보기 3 - HTTP 메서드 활용

2025. 6. 15. 20:04·HTTP

클라이언트 -> 서버 데이터 전송 방식

이전 HTTP 메서드 포스팅을 통해 알 수 있는 사실이 있다. 

HTTP 를 통해 데이터를 전달하는 방식은 크게 두가지 있는데, 이는 다음과 같다

- 쿼리 파라미터를 통한 데이터 전송 -> GET 을 통한 정렬 필터 사용

- 메시지 바디에 직접 데이터를 담아 전송 -> POST, PUT, PATCH 등을 통해 사용


HTTP API 설계 예시

- HTTP API - POST 기반으로 컬렉션(리소스)를 등록

- HTTP API - 스토어 -> PUT 기반의 등록을 통한 정적 컨텐츠, 원격 파일 관리

- HTML FORM 사용 -> 웹 페이지 회원 관리, GET || POST

 


1탄의 요구사항에 HTTP 메서드를 통한 구분

HTTP 메서드는 행위 -> 동사, members 는 리소스

즉 우리는 HTTP 메서드를 통해 이제 리소스와 행위를 분류할 수 있게 되었다

1. 회원 목록 -> GET /members 

2. 회원 등록 -> POST /members

3. 회원 조회 -> GET /members/{id}

4. 회원 수정 -> PATCH || PUT || POST /members/{id}

5. 회원 삭제 -> DELETE /members/{id}


HTML FORM 사용

HTML 폼을 사용하게 된다면 GET, POST 메서드만 사용할 수 있게 된다. 즉 우리는 다른 메서드 (PATCH, PUT 등)은 사용할 수 없게 되는데, 이를 해결하기 위한 가장 단순한 방법은 Controll URI를 사용하는 것이다.

 

Controll URI

GET , POST 만 지원하는 HTML Form 의 제약을 해결하기 위한 동사로 된 리소스 경로를 사용할 수 있다.

예를 들어 POST 의 /new, /edit, /delete 등이 컨트롤 URI 인데, HTTP 메서드로 해결하기 애매한 경우에 사용할 수 있다.

 

Controll URI를 적용한 API 

회원 목록 /members -> GET

회원 등록 폼 /members/new -> GET

회원 등록 /members/new, /members -> POST

회원 조회 /members/{id} -> GET

회원 수정 폼 /members/{id}/edit -> GET

회원 수정 /members/{id}/edit, /members/{id} -> POST

회원 삭제 /members/{id}/delete -> POST

'HTTP' 카테고리의 다른 글

[HTTP] HTTP API 만들어보기 2 - HTTP 메서드 정리  (0) 2025.06.15
[HTTP] HTTP API 만들어보기 1 - 리소스와 행위의 분류  (0) 2025.06.15
[HTTP] Connectionless - 비연결성 모델  (0) 2025.06.15
[HTTP] Stateless vs Stateful 어떤 것을 선택해야 할까?  (0) 2025.06.14
[HTTP] URL, URI , URN 이 대체 뭔데?  (0) 2025.06.14
'HTTP' 카테고리의 다른 글
  • [HTTP] HTTP API 만들어보기 2 - HTTP 메서드 정리
  • [HTTP] HTTP API 만들어보기 1 - 리소스와 행위의 분류
  • [HTTP] Connectionless - 비연결성 모델
  • [HTTP] Stateless vs Stateful 어떤 것을 선택해야 할까?
xuv2
xuv2
집에 가고 싶다
  • xuv2
    xuvlog
    xuv2
  • 전체
    오늘
    어제
    • 전체 글 모아보기 (185) N
      • 잡담 (10)
      • 도전 , 자격증 (3)
      • Error (5)
      • Java (23)
      • Spring (40)
        • Core (10)
        • MVC (21)
        • Thymeleaf (9)
      • DataBase (17) N
        • Database Modeling (4)
        • MySQL (13) N
      • HTTP (11)
      • Network (17)
      • Software Engineering (3)
      • Operating System (3)
      • Algorithm (16)
      • Project (19)
        • Web (9)
        • iOS (8)
        • Python (1)
        • Toy Project (1)
      • A.I (13)
      • Linux (5)
  • 블로그 메뉴

    • 홈
  • 링크

    • Github
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
xuv2
[HTTP] HTTP API 만들어보기 3 - HTTP 메서드 활용
상단으로

티스토리툴바