Zum Hauptinhalt springen

Request():delete()

Führt eine DELETE-Anfrage aus und gibt ein Response-Objekt zurück. Diese Methode wird verwendet, um eine Ressource von einem Server zu löschen.

Signatur

delete(): Response

Rückgabe

Response - Das Response-Objekt mit der Serverantwort

Beschreibung

Die Methode delete() sendet eine HTTP-DELETE-Anfrage an die URL, die beim Erstellen des Request-Objekts angegeben wurde. DELETE-Anfragen werden typischerweise verwendet, um vorhandene Ressourcen von einem Server zu entfernen, beispielsweise um einen Benutzer, einen Beitrag oder eine beliebige andere Datenentität zu löschen.

Beispiele

Einfache DELETE-Anfrage

-- Delete a user with ID 123
local response = Request("https://api.example.com/users/123"):delete()

DELETE-Anfrage mit Authentifizierung

-- Delete a post with authorization
local response = Request("https://api.example.com/posts/456")
:setHeader("Authorization", "Bearer your-token-here")
:setHeader("Accept", "application/json")
:delete()

DELETE-Antwort verarbeiten

-- Delete a comment and handle the response
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("Comment deleted successfully! (No content)")
elseif statusCode == 200 then
print("Comment deleted successfully!")
print("Response: " .. data)
else
print("Failed to delete comment. Status: " .. statusCode)
end

DELETE mit zusätzlichen Headern

-- Delete a resource with custom headers
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("File deleted successfully")
else
print("Delete failed with status: " .. status)
end

Bedingtes Löschen

-- Delete only if resource hasn't been modified
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("Delete failed: Resource has been modified")
elseif status == 200 or status == 204 then
print("Resource deleted successfully")
end

Hinweise

  • DELETE-Anfragen haben üblicherweise keinen Anfragekörper
  • Erfolgreiche DELETE-Operationen geben in der Regel zurück:
    • 200 OK mit einem Antwortkörper, der die Löschung beschreibt
    • 202 Accepted, wenn die Löschung asynchron verarbeitet wird
    • 204 No Content, wenn die Löschung erfolgreich war, aber kein Antwortkörper vorhanden ist
  • Die Methode gibt ein Response-Objekt zurück, mit dem Sie auf die Antwortdaten und den Statuscode zugreifen können
  • Prüfen Sie immer den Antwort-Statuscode, um sicherzustellen, dass die Anfrage erfolgreich war
  • DELETE-Anfragen sind idempotent - mehrmaliges Senden derselben Anfrage sollte dieselbe Wirkung haben (die Ressource wird gelöscht)
  • Seien Sie vorsichtig bei der Verwendung von DELETE-Anfragen, da sie Daten dauerhaft entfernen