본문으로 건너뛰기

Request():delete()

DELETE 요청을 실행하고 Response 객체를 반환합니다. 이 메서드는 서버에서 리소스를 삭제할 때 사용됩니다.

시그니처

delete(): Response

반환값

Response - 서버 응답을 담고 있는 응답 객체

설명

delete() 메서드는 Request 객체를 생성할 때 지정한 URL로 HTTP DELETE 요청을 보냅니다. DELETE 요청은 일반적으로 사용자, 게시글 등 기존 리소스를 서버에서 제거할 때 사용됩니다.

예시

기본 DELETE 요청

-- ID123인 사용자 삭제
local response = Request("https://api.example.com/users/123"):delete()

인증이 포함된 DELETE 요청

-- 인증 정보와 함께 게시글 삭제
local response = Request("https://api.example.com/posts/456")
:setHeader("Authorization", "Bearer your-token-here")
:setHeader("Accept", "application/json")
:delete()

DELETE 응답 처리

-- 댓글을 삭제하고 응답을 처리
local response = Request("https://api.example.com/comments/789")
:setHeader("Authorization", "Bearer your-token-here")
:delete()

local data = response:getData()
local statusCode = response:getResponseCode()

if statusCode == 204 then
print("댓글이 성공적으로 삭제되었습니다! (콘텐츠 없음)")
elseif statusCode == 200 then
print("댓글이 성공적으로 삭제되었습니다!")
print("응답: " .. data)
else
print("댓글 삭제에 실패했습니다. 상태: " .. statusCode)
end

추가 헤더를 포함한 DELETE 요청

-- 사용자 지정 헤더와 함께 리소스 삭제
local response = Request("https://api.example.com/files/document.pdf")
:setHeader("Authorization", "Bearer token123")
:setHeader("X-Delete-Reason", "User requested deletion")
:setHeader("Accept", "application/json")
:delete()

local status = response:getResponseCode()
if status == 200 or status == 204 then
print("파일이 성공적으로 삭제되었습니다")
else
print("삭제 실패, 상태: " .. status)
end

조건부 삭제

-- 리소스가 수정되지 않은 경우에만 삭제
local response = Request("https://api.example.com/data/123")
:setHeader("If-Match", "etag-value-here")
:setHeader("Authorization", "Bearer token")
:delete()

local status = response:getResponseCode()
if status == 412 then
print("삭제 실패: 리소스가 수정되었습니다")
elseif status == 200 or status == 204 then
print("리소스가 성공적으로 삭제되었습니다")
end

참고

  • DELETE 요청은 일반적으로 요청 본문을 가지지 않습니다.
  • 성공적인 DELETE 작업은 일반적으로 다음을 반환합니다.
    • 200 OK - 삭제 내용을 설명하는 응답 본문
    • 202 Accepted - 삭제가 비동기적으로 처리되는 경우
    • 204 No Content - 삭제가 성공했지만 응답 본문이 없는 경우
  • 이 메서드는 응답 데이터와 상태 코드에 접근할 수 있는 Response 객체를 반환합니다.
  • 요청이 성공했는지 확인하려면 항상 응답 상태 코드를 확인하세요.
  • DELETE 요청은 멱등성을 가집니다. 즉, 동일한 요청을 여러 번 보내도 동일한 효과를 냅니다(리소스가 삭제됨).
  • DELETE 요청은 데이터를 영구적으로 제거하므로 사용에 주의하세요.