In this lesson, you learn how to implement the POST method in a REST API to create a new resource, specifically a Cash Card. The server generates the unique ID for the new Cash Card to simplify the process, and the client sends the resource data (like the amount) in the request body without an ID.
Key Concepts:
- ID Generation: The server generates the ID for newly created resources, ensuring simplicity and uniqueness.
- HTTP Methods and Idempotence:
- POST is used for creating resources because it is non-idempotent—repeated requests will create new records with different IDs, even if the content is the same.
- POST Request:
- Method: POST
- URI:
/cashcards/
- Body: JSON representation of the object (e.g.,
{"amount": 123.45}
)
- POST Response:
- Status Code:
201 CREATED
indicates successful creation.
- Headers: Includes a
Location
header with the URI of the newly created resource (e.g., /cashcards/42
).
- Spring Web Convenience Methods:
- Spring Web simplifies responses with methods like
ResponseEntity.created()
, which automatically sets the status code and URI in the response.
Steps for POST Implementation:
- Client sends a POST request with the resource data (no ID).
- The server generates a unique ID for the new resource and returns a
201 CREATED
status with the URI of the created resource.
이 레슨에서는 POST 메서드를 사용해 새로운 자원(여기서는 Cash Card)을 생성하는 REST API 구현 방법을 배웁니다. 서버가 고유한 ID를 생성하고, 클라이언트는 ID 없이 데이터(예: 금액)를 요청 본문에 전송합니다.
핵심 개념:
- ID 생성: 서버에서 새로운 자원의 고유한 ID를 생성하여 간소화합니다.
- HTTP 메서드와 멱등성:
- POST는 비멱등이므로 같은 요청을 반복해도 새로운 레코드가 생성되며, 각각 다른 ID를 가집니다.
- POST 요청:
- 메서드: POST
- URI:
/cashcards/
- 본문: 자원의 JSON 표현 (예:
{"amount": 123.45}
)
- POST 응답:
- 상태 코드:
201 CREATED
는 성공적으로 자원이 생성되었음을 나타냅니다.
- 헤더: 새로 생성된 자원의 URI가 포함된
Location
헤더를 반환합니다 (예: /cashcards/42
).
- Spring Web 편의 메서드:
- Spring Web은
ResponseEntity.created()
같은 메서드를 제공하여 상태 코드와 URI를 자동으로 설정해 응답을 간소화합니다.
POST 구현 단계:
- 클라이언트는 자원 데이터를 POST 요청으로 보냅니다(클라이언트가 ID를 제공하지 않음).