HTTP API - 컬렉션
- POST 기반 등록 ex) 회원 관리 API 제공
회원 관리 시스템 API 설계 - POST 기반 등록
회원 목록 | /members | GET |
회원 등록 | /members | POST |
회원 조회 | /members/{id} | GET |
회원 수정 | /members/{id} | PATCH, PUT, POST |
회원 삭제 | /members/{id} | DELETE |
POST - 신규 자원 등록 특징
- 클라이언트는 등록될 리소스의 URI를 모른다.
- POST /members
- 서버가 새로 등록된 리소스 URI를 생성해준다.
- HTTP/1.1 201 Created
Location: /members/100
- 컬렉션(Collection)
- 서버가 관리하는 리소스 디렉토리
- 서버가 리소스의 URI를 생성하고 관리
- 여기서 컬렉션은 /members
> POST 기반 등록
> 서버가 리소스 URI 결정
HTTP API - 스토어
- PUT 기반 등록 ex) 정적 컨텐츠 관리, 원격 파일 관리
파일 목록 | /files | GET |
파일 조회 | /files/{filename} | GET |
파일 등록 | /files/{filename} | PUT |
파일 삭제 | /files/{filename} | DELETE |
파일 대량 등록 | /files | POST |
PUT - 신규 자원 등록 특징
- 클라이언트가 리소스 URI를 알고 있어야 한다.
- PUT /files/star.jsp
- 클라이언트가 직접 리소스의 URI를 지정한다.
- 스토어(Store)
- 클라이언트가 관리하는 리소스 저장소
- 클라이언트가 리소스의 URI를 알고 관리
- 여기서 스토어는 /files
> PUT 기반 등록
> 클라이언트가 리소스 URI를 결정
HTML FORM 사용
- 웹 페이지 회원 관리 / GET, POST만 지원
- 순수 HTML + HTML FORM 사용
회원 목록 | /members | GET |
회원 등록 폼 | /members/new | GET |
회원 등록 | /members/new, /members | POST |
회원 조회 | /members/{id} | GET |
회원 수정 폼 | /members/{id}/edit | GET |
회원 수정 | /members/{id}/eidt, members/{id} | POST |
회원 삭제 | /members/{id}/delete | POST |
- HTML FORM 은 GET, POST만 지원
- 컨트롤 URI
- GET, POST만 지원하므로 제약이 있음
- 이런 제약을 해결하기 위해 동사로 된 리소스 경로 사용
- POST의 /new, /edit, /delete가 컨트롤 URI
- HTTP 메서드로 해결하기 애매한 경우 사용(HTTP API 포함)
https://restfulapi.net/resource-naming/ 을 읽어보면 좋다.
문서(document) | - 단일 개념(파일 하나, 객체 인스턴스, 데이터베이스 row) ex. /mebers/100, /files/star.jpg |
컬렉션(collection) | - 서버가 관리하는 리소스 디렉토리 - 서버가 리소스의 URI를 생성하고 관리 ex. /membres |
스토어(store) | - 클라이언트가 관리하는 자원 저장소 - 클라이언트가 리소스의 URI를 알고 관리 ex. /files |
컨트롤러(controller), 컨트롤 URI | - 문서, 컬렉션, 스토어로 해결하기 어려운 추가 프로세스 실행 - 동사를 직접 사용 ex. /members/{id}/delete |
참고 : https://inf.run/haHk
'네트워크' 카테고리의 다른 글
HTTP 헤더, HTTP 바디 (0) | 2022.03.31 |
---|---|
HTTP 상태코드 (0) | 2022.03.28 |
HTTP 메서드 활용 (0) | 2022.03.28 |
HTTP 메서드 속성(안전, 멱등, 캐시) (0) | 2022.03.28 |
HTTP 메서드 종류 및 좋은 API URI 설계 (0) | 2022.03.25 |
댓글