1. HTTP API 설계
ㅇ 요구사항: 회원 정보 관리 API를 만들어라
- 회원 목록 조회
- 회원 조회
- 회원 등록
- 회원 수정
- 회원 삭제
ㅇ API URI(Uniform Resource Identifier) 설계
- 회원 목록 조회 /read-member-list
- 회원 조회 /read-member-by-id
- 회원 등록 /create-member
- 회원 수정 /update-member
- 회원 삭제 /delete-member
→ API URI 설계시 가장 중요한 것 : 리소스 식별
ㅇ API URI 설계 시 중요하게 고려해야 할 점
- 리소스란?
: 행위가 아닌 대상이 리소스
EX) 미네랄을 캐라 > 리소스 : 미네랄, 회원을 등록/수정/조회 > 리소스 : 회원
- 리소스를 어떻게 식별하는개 좋을까?
: 회원을 등록/수정/조회하는 행위는 모두 배제
: 회원이라는 대상(리소스)만 식별하면 된다 → 회원 리소스를 URI에 매핑
ㅇ 리소스 식별/ URI 계층구조 활용 API URI 설계
- 회원 목록 조회 /members
- 회원 조회 /members/{id}
- 회원 등록 /members/{id}
- 회원 수정 /members/{id}
- 회원 삭제 /members/{id}
※ 참고: 계층 구조상 상위를 컬렉션으로 보고 복수단어 사용 권장
→ 조회/등록/수정/삭제에 대한 구분이 어려움
ㅇ HTTP 메서드 : 리소스와 행위를 분리!
- URI는 리소스만 식별!
- 리소스와 해당 리소스를 대상으로 하는 행위 분리
- 리소스(명사): 회원
- 행위(동사): 조회, 등록, 삭제, 변경
- 행위(메서드)는 어떻게 구분? : HTTP 메서드 - GET/POST/PUT/PATCH/DELETE로 구분
2. HTTP 메서드
: 클라이언트가 서버에 요청 시 기대하는 행동
ㅇ 주요 HTTP 메서드 종류
- GET : 리소스 조회
- POST : 데이터를 담아서 Client 서버에 보내야 함, 요청 데이터 처리, 주로 등록에 사용
- PUT : 리소스를 대체, 해당 리소스가 없으면 생성
- PATCH : 리소스 부분 변경
- DELETE : 리소스 삭제
※ 최근 SPEC: 리소스 → Representation
ㅇ 기타 HTTP 메서드 종류
- HEAD : GET과 동일하지만 메시지 부분(BODY)을 제외하고, 상태 줄과 헤더만 반환
- OPTIONS : 대상 리소스에 대한 통신 가능 옵션(메서드)을 설명(주로 CORS에서 사용)
- CONNECT
- TRACE
ㅇ Get
- 리소스 조회
- 서버에 전달하고 싶은 데이터는 query(쿼리 파라미터, 쿼리 스트링)를 통해 전달
- 바디를 사용해 데이터 전달 가능 But, 미지원 서버가 많아 권장하지 않음
ㅇ Post
- 요청 데이터(메시지 바디) 처리
- 메시지 바디를 통해 서버로 요청 데이터 전달 → 서버는 요청 데이터를 처리(모든 기능 수행)
- 주로 전달된 데이터로 신규 리소스 등록, 프로세스 처리에 사용
'소소한 STUDY > 컴퓨터사이언스' 카테고리의 다른 글
[운영체제] 컴퓨터 프로그램 구조와 프로그램 실행 1 (0) | 2023.01.27 |
---|---|
[운영체제] 운영체제 란? (0) | 2023.01.25 |
[코드없는 프로그래밍/Arrays] Find pivot Index (0) | 2022.11.25 |
[코드없는 프로그래밍/Arrays] move zeros (0) | 2022.10.11 |
[코드없는 프로그래밍/Arrays] Binary Search (0) | 2022.10.11 |