본문 바로가기

네트워크

HTTP-메서드

HTTP API를 만들어보자.

 

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

• 회원 목록 조회

• 회원 조회

• 회원 등록

• 회원 수정

• 회원 삭제

 

API URI 설계 URI(Uniform Resource Identifier)

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

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

• 회원 등록 /create-member

• 회원 수정 /update-member

• 회원 삭제 /delete-membe

 

과연 이것은 좋은 URI 설계일까?

 

가장 중요한 것은 리소스 식별

 

API URI 고민 URI(Uniform Resource Identifier)

• 리소스의 의미는 뭘까?

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

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

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

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

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

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

 

따라서 API URI 설계 URI(Uniform Resource Identifier)

회원 목록 조회

회원 조회

회원 등록

회원 수정

회원 삭제

 

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

회원 목록 조회 /members

회원 조회 /members/{id}

회원 등록 /members/{id}

회원 수정 /members/{id}

회원 삭제 /members/{id}

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

 

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

회원 목록 조회 /members

회원 조회 /members/{id} -> 어떻게 구분하지?

회원 등록 /members/{id} -> 어떻게 구분하지?

회원 수정 /members/{id} -> 어떻게 구분하지?

회원 삭제 /members/{id} -> 어떻게 구분하지?

 

리소스와 행위을 분리 가장 중요한 것은 리소스를 식별하는 것

• URI는 리소스만 식별!

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

• 리소스: 회원

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

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

 

 

 

'네트워크' 카테고리의 다른 글

HTTP-매서드 PUT ,PATCH ,DELETE  (0) 2022.04.20
HTTP-메서드 - GET, POST  (0) 2022.04.20
HTTP-메시지  (0) 2022.04.20
HTTP-비 연결성(connectionless)  (0) 2022.04.20
HTTP-Stateful, Stateless  (0) 2022.04.19