관리 메뉴

샐님은 개발중

[섹션 6] RESTful API 설계 가이드 본문

인프런 - Spring Boot 3.x 를 이용한 RESTful Web

[섹션 6] RESTful API 설계 가이드

샐님 2024. 8. 2. 16:25
728x90
반응형

 

성숙도 모델 (RMM)

- REST API 를 만들 때 주의사항, 고려사항, 어떤 단계로 하면 좋은지에 대해서 나눈 모델

LEVEL 0

 - 기존의 데이터(리소스)를 웹서비스 형태로 제공하기 위해 단순히 URI 맵핑만 가지고 있는 형태

EX) http://server/getPosts 와 같이 주소 체계가 우리가 작성해 왔었던 http 개념 이 아닌 단순히 리소스가 어떠한 작업을 해야 되는지를 전부 주소 이름에 명시한 케이스

LEVEL1

- 우리가 웹으로 공개하고자 하는 리소스에 대해 좀 더 의미 있고 적절한 URI를 가지고 표현

EX) http://server/accounts

      http://server/accounts/10

-일정한 패턴을 가지고 작성되어 있지만 http메소드별로 서비스를 구분해서 사용하고 있지는 않음.

-리소스의 형태 나 작업의 종류에 맞춰서 적절한 http 메소드를 지정하고 있지 않다는 얘기이며 실제로 많은 restful 서비스의 이와 유한 형태를 가지고 작업된 것을 볼수 있음.

- 사용자의 요청을 단순히 get/post와 같은 메소드로만 처리 / 모든 반환 코드를 200 ok 로 단순 반환하는 케이스.

LEVEL2

- LEVEL1 + HTTP Methods

LEVEL3

-LEVEL2 +HETEOAS

- 리소스를 적절한 상태로 표현할 수 있는 레벨2 단계와 더불어 다음 작업으로 어떤 것을 할 수 있는지 현재 작업에서 그 다움에 할 수 있는 행동들이 어떤 것이 있는지 또 그 작업을 위해 다뤄져야 하는 리소스의 URL이 어떤것이 있는지에 대해서 한꺼번에 알려줌.

 

 

 

고려사항

- 고객중심 개발

- HTTP 의 장점 활용

- REQUEST METHODS 별로 개발

- RESPONSE 상태 : 200,404,400,201,401

- 보안이필요한 정보는 URI에 표시 하면 안됨

- 복수형태를 사용 : PREFER/USERS/1TO /USERS/1

- 명사형 사용

- 일관된 엔드포인트 사용 : /search , PUT/gists/{id}/star

 

-- RESTful Api 웹 서비스 개발

 : 화면단에 가지고 있지 않은 RESTFul Api 만을 서비스하는 형태 어플리케이션. 

    다양한 클라이언트 어플리케이션으로 확장 가능

    

 

 

 

728x90
반응형