Request():delete()
DELETE 요청을 실행하고 Response 객체를 반환합니다. 이 메서드는 서버에서 리소스를 삭제할 때 사용됩니다.
시그니처
delete(): Response
반환값
Response - 서버 응답을 담고 있는 응답 객체
설명
delete() 메서드는 Request 객체를 생성할 때 지정한 URL로 HTTP DELETE 요청을 보냅니다. DELETE 요청은 일반적으로 사용자, 게시글 등 기존 리소스를 서버에서 제거할 때 사용됩니다.
예시
기본 DELETE 요청
-- ID가 123인 사용자 삭제
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 요청은 데이터를 영구적으로 제거하므로 사용에 주의하세요.