🔙뒤로가기
HTTP 메소드는 클라이언트가 서버에 요청을 보낼 때, 수행하고자 하는 동작을 명시하는 방법이다. RESTful API에서는 주로 다음과 같은 HTTP 메소드를 사용하며, 각 메소드는 다음과 같은 역할을 수행한다.
- GET
리소스를 조회하는 데 사용된다. GET 요청은 서버의 리소스에 대한 정보를 가져오는 데 사용되며, 데이터를 변경하지 않는다. 이 메소드는 안전하고 멱등(idempotent)해야 한다.
- POST
새로운 리소스를 생성하는 데 사용된다. POST 요청은 서버에 전송된 데이터를 기반으로 새 리소스를 생성하며, 생성된 자원의 URI를 반환한다. 이 메소드는 멱등하지 않다.
- PUT
리소스를 전체 수정하는 데 사용된다. PUT 요청은 클라이언트가 제공한 데이터로 기존 리소스의 모든 정보를 갱신한다. 리소스가 존재하지 않으면 새로운 리소스를 생성할 수도 있다. 이 메소드는 멱등(idempotent)해야 한다.
- PATCH
리소스의 일부를 수정하는 데 사용된다. PATCH 요청은 클라이언트가 제공한 데이터로 리소스의 일부 정보만을 갱신한다. 이 메소드는 멱등(idempotent)해야 한다.
- DELETE
리소스를 삭제하는 데 사용된다. DELETE 요청은 지정된 자원을 삭제하며, 성공 시 일반적으로 204 No Content 상태 코드를 반환한다. 이 메소드는 멱등(idempotent)해야 한다.
이 외에도 HEAD, OPTIONS, CONNECT 등의 HTTP 메소드가 있지만, 일반적인 RESTful API에서는 위에서 설명한 GET, POST, PUT, PATCH, DELETE가 주로 사용된다. 각 메소드를 적절하게 사용함으로써 API를 통한 자원 조작을 명확하게 표현할 수 있다.
<aside>
💡 멱등성(Idempotency):
멱등성이란 동일한 요청을 한 번 보내든, 여러 번 보내든 동일한 결과를 반환해야 한다는 원칙을 의미한다. GET, PUT, DELETE, PATCH는 이 멱등성 원칙을 준수한다. 즉, 동일한 GET 요청을 여러 번 하더라도 동일한 리소스가 반환되며, 동일한 DELETE 요청을 여러 번 하더라도 해당 리소스는 한 번만 삭제된다.
</aside>
<aside>
💡 리소스(Resource)와 데이터(Data):
- 리소스: 웹에서, 리소스는 특정한 URL에 의해 식별되는 개체를 말한다. 웹 페이지, 이미지, 비디오, 데이터 레코드, 스크립트 등 모든 종류의 개체를 포괄할 수 있다. RESTful API에서 리소스는 특정한 종류의 데이터 집합이나, 단일 데이터 항목을 의미하기도 한다. 예를 들어, 사용자 API에서 각 사용자는 URL(예: /users/123)에 의해 식별되는 리소스가 될 수 있다.
- 데이터: 데이터는 원시적인 값이나, 값의 집합을 말하며, 이는 리소스의 구성 요소일 수 있다. 예를 들어, 사용자 리소스는 이름, 이메일, 전화번호 등의 다양한 데이터를 포함할 수 있다. 또한, 데이터는 서버와 클라이언트 사이에서 교환되는 정보의 형태일 수도 있다.
</aside>