@RestController나 @Controller를 사용할 때 @PostMapping("")를 사용하는 것은 일반적인 방식이다.
이를테면, "/create/{id}" 같은 경로를 사용하는 것도 가능하지만, 일반적으로 RESTful API에서는 다음과 같이 경로를 설계하다.
따라서, 일반적으로 RESTful API에서는 POST 요청을 사용하여 새로운 리소스를 생성할 때 경로에 해당하는 리소스 컬렉션의 경로를 사용하고, @RequestBody를 사용하여 요청 본문의 데이터를 받아옵니다. 이에 맞게 코드를 수정하면 된다.
일반적으로 RESTful API에서는 클라이언트가 직접적으로 리소스의 id를 지정하는 것이 아니라, 요청의 경로나 요청 본문을 통해 데이터를 전달한다.
따라서, 클라이언트는 id를 직접 지정하는 대신, 해당 리소스를 생성할 때 필요한 데이터를 요청 본문에 담아서 보낸다. 서버는 이러한 요청을 받아서 해당 데이터를 기반으로 새로운 리소스를 생성한다.
따라서, 예시에서 보여주신 것과 같이, 직접 id를 사용하여 리소스를 가져오는 것은 RESTful API 설계의 일반적인 방식이 아니다. 대신에 요청 본문이나 경로를 통해 데이터를 전달하여 사용하는 것이 바람직하다.
RESTful API에서는 HTTP 요청의 경로와 본문을 활용하여 데이터를 전달한다.
예를 들어, 사용자가 새로운 사용자를 생성하는 RESTful API를 고려해 보자 사용자의 이름과 이메일 주소를 포함한 데이터를 전달하여 새로운 사용자를 생성하는 것을 가정해보면
POST /api/users
{
"name": "John Doe",
"email": "john.doe@example.com"
}
이렇게 하면 클라이언트는 "/api/users"라는 엔드포인트로 POST 요청을 보내며, 요청 본문에는 새로운 사용자의 이름과 이메일 주소가 포함된다. 서버는 이러한 요청을 받아서 새로운 사용자를 생성하고 그에 따른 응답을 클라이언트에게 반환한다.