📚 Computer Science/Network

[모든 개발자를 위한 HTTP 웹 기본 지식] 4. HTTP 메서드 - HTTP API를 만들어보자

ryang x2 2023. 8. 11. 16:07
728x90
반응형

인프런 김영한님 [모든 개발자를 위한 HTTP 웹 기본 지식] 강의를 듣고 정리한 내용입니다.

틀린 부분이 있으면 답글 달아 주세요😊😊

 

1. 요구사항 - 회원 정보 관리 API를 만들어라.

• 회원 목록 조회

• 회원 조회

• 회원 등록

• 회원 수정

• 회원 삭제

 

2. API URI(Uniform Resource Identifier) 설계

• 회원 목록 조회 /read-member-list

• 회원 조회 /read-member-by-id

• 회원 등록 /create-member

• 회원 수정 /update-member

• 회원 삭제 /delete-member

 

3. 이것은 좋은 RUI 설계일까? ⭐⭐⭐

 

4. API URI(Uniform Resource Identifier) 고민

리소스의 의미는 뭘까?

  - 회원을 등록하고 수정하고 조회하는게 리소스가 아니다!

  - 예) 미네랄을 캐라 -> 미네랄이 리소스

  - 회원이라는 개념 자체가 바로 리소스다.

 

리소스를 어떻게 식별하는게 좋을까?

  - 회원을 등록하고 수정하고 조회하는 것을 모두 배제

  - 회원이라는 리소스만 식별하면 된다. -> 회원 리소스를 URI에 매핑

 

5. API URI(Uniform Resource Identifier) 설계

- 리소스 식별, URI 계층 구조 활용

회원 목록 조회 /members 

회원 조회 /members/{id}

회원 등록 /members/{id}

회원 수정 /members/{id}

회원 삭제 /members/{id}

참고: 계층 구조상 상위를 컬렉션으로 보고 복수단어 사용 권장(member -> members)

 

-> 그렇다면, 회원 조회/등록/수정/삭제 는 어떻게 구분할까❓

 

6. 리소스와 행위를 분리 

⭐ 가장 중요한 것은 리소스를 식별하는 것

URI는 리소스만 식별!

리소스와 해당 리소스를 대상으로 하는 행위분리

  - 리소스: 회원

  - 행위: 조회, 등록, 삭제, 변경

리소스는 명사, 행위는 동사 (미네랄을 캐라)

• 행위(메서드)는 어떻게 구분?

 


❓ 질문 정리 ❗

Q. members/1 이 아니라 members?id=1 이런식으로 써야하는 거 아닌가?

A. path query 리소스를 식별하기 위해 함께 쓰인다.

query를 써서 members?id=1과 같이 사용할 수도 있지만 관례적으로 리소스를 식별할 때 id(식별자) members/1과 같이 path를 사용한다.

path는 주로 계층구조로 된 정보를 포함하고 query는 주로 비계층구조로된 정보를 포함한다.

즉, path는 리소스의 위치를 특정해서 보여줘야 하는 경우 사용하고, query는 리소스를 정렬/필터해서 보여줘야하는 경우 사용한다.

- path →  /members/1

- query  ?members?occupation=programmer

[출처] https://www.inflearn.com/questions/517777

 

728x90
반응형