본문 바로가기
PlayGround/마실가실 리팩토링

[1년 후 마실가실] REST API 구현

by HJ0216 2024. 8. 4.

1년 전 진행했던 마실가실 프로젝트를 🛠️리팩토링하며 정리한 내용입니다.

 

RESTful한 구현이 안된 프로젝트는 1년 전 마실가실입니다.

 

1년 후 마실가실은 RESTful 할 수 있습니다.

 

간단한 정의는

  자원의 이름(표현)으로 자원의 상태(정보)를 주고 받는 것

입니다.

 

자원은 URI로, 자원의 행위는 HTTP Method로 표현 → 행위에 맞는 적절한 HTTP method를 사용한 것을 RESTful하다고 합니다.

  • 조회: GET
  • 생성: POST
  • 일부 수정: PATCH / 전체 수정: PUT
  • 삭제: DELETE

REST API 설계 규칙

  1. 소문자 사용
  2. _ 대신 - 사용
  3. 마지막에 슬래시(/)를 포함하지 않음
  4. 행위를 포함하지 않음
    행위는 URI 대신 Http Method를 사용하여 전달
  5. 파일 확장자는 URL에 포함시키지 않음
  6. 명사 사용, 예외적으로 컨트롤 자원을 의미하는 경우 동사 사용
  7. URI에 작성되는 영어를 복수형으로 작성

 

// 기존
@RestController
@RequestMapping("user")
public class UserController {
    @PostMapping("/signup")
    public void userSignUp(@RequestBody User user) {
        userService.signUp(user);
    }
}

// 리팩토링
@RestController
@RequestMapping("api/v2/users")
@RequiredArgsConstructor
public class UserController {
    @PostMapping("/new")
    public String create(@RequestBody User user){
        System.out.println("UserController.create");

        Integer id = userService.create(user);
        return id.toString();
    }
}
  • signup → new
  • user → users

 

 

 

🙋‍♀️

본 포스트는 공부 목적으로 작성하였습니다.
보시는 도중 잘못된 부분이나 개선할 부분이 있다면 댓글로 알려주시면 수정하도록 하겠습니다.

 

📑

참고 자료

 

REST API URL 규칙

API 개발을 하는데 있어서 URI를 어떻게 명명할지에 대한 정리를 하기 위해 포스팅 하였다. 1. RESTful API 란 Rest : Representational State Tranfer의 약자로 웹을 이용할때 제약조건들을 정의하는 소프트웨어

dev-cool.tistory.com

 

[간단정리] REST, REST API, RESTful 특징

개요 REST, REST API, RESTful 특징 알아보기 REST REST 정의 REST(Representational State Transfer)는 월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식 REST는 기본적으로 웹

hahahoho5915.tistory.com

 

REST란? REST API 와 RESTful API의 차이점

참고 REST(REpresentational State Transfer)란? REST의 정의 "REpresentational State Transfer" 의 약자로, 자원을 이름(자원의 표현)으로 구분해 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미합니다. 즉, 자원(

dev-coco.tistory.com