[1년 후 마실가실] REST API 구현
1년 전 진행했던 마실가실 프로젝트를 🛠️리팩토링하며 정리한 내용입니다.
RESTful한 구현이 안된 프로젝트는 1년 전 마실가실입니다.
1년 후 마실가실은 RESTful 할 수 있습니다.
간단한 정의는
자원의 이름(표현)으로 자원의 상태(정보)를 주고 받는 것
입니다.
자원은 URI로, 자원의 행위는 HTTP Method로 표현 → 행위에 맞는 적절한 HTTP method를 사용한 것을 RESTful하다고 합니다.
- 조회: GET
- 생성: POST
- 일부 수정: PATCH / 전체 수정: PUT
- 삭제: DELETE
REST API 설계 규칙
- 소문자 사용
- _ 대신 - 사용
- 마지막에 슬래시(/)를 포함하지 않음
- 행위를 포함하지 않음
행위는 URI 대신 Http Method를 사용하여 전달 - 파일 확장자는 URL에 포함시키지 않음
- 명사 사용, 예외적으로 컨트롤 자원을 의미하는 경우 동사 사용
- 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