본문 바로가기
http

HTTP API

by rewind 2024. 2. 4.

HTTP API 설계 예시

HTTP API - 컬렉션

POST 기반 등록

ex) 회원 관리 API 제공

 

API 설계 - POST 기반 등록

회원 목록 /members -> GET

회원 등록 /members -> POST

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

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

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

 

회원 수정을 고민 해봐야 한다!

(게시글 수정시 PUT을 생각 해볼수있다)

 

POST - 신규 자원 등록 특징

 

클라이언트는 등록될 리소스의 URI를 모른다

회원 등록 /members -> POST

POST/ members

 

서버가 새로 등록된 리소스 URI를 생성해준다

HTTP/1.1 201 Created Location: /members/100

 

컬렉션(Collection)

서버가 관리하는 리소스 디렉토리

서버가 리소스의 URI를 생성하고 관리

여기서 컬렉션은 /members

 

파일관리 시스템

API 설계 - PUT 기반 등록

파일 목록 /files -> 

파일 조회 /files ->

파일 등록 /files ->

파일 삭제 /files ->

파일 대량 등록 /files ->

 

HTTP FORM 사용

HTML FORM은 GET , POST만 지원

AJAX

 

● 회원 목록      /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

 

컨트롤 URI

GET , POST만 지원하므로 제약이 있음

이런 제약을 해결하기 위해 동사로 된 리소스 경로 사용

POST의 /new , /edit , /delete가 컨트롤 URI

HTTP메소드로 해결하기 애매한 경우 사용(HTTP API 포함)

 

HTTP API - 컬렉션

POST기반 등록

서버가 리소스 URI 결정

 

HTTP API - 스토어

PUT 기반 등록

클라이언트가 리소스 URI 결정

 

HTML FORM 사용

순수 HTML + HTML FORM 사용

GET , POST만 지원

 

URI 설계 참고!

https://restfulapi.net/resource-naming/