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 OKmit einem Antwortkörper, der die Löschung beschreibt202 Accepted, wenn die Löschung asynchron verarbeitet wird204 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