Ich bin ein Haskell-Neuling.
Ich versuche, einen kleinen Server Webdav mit dem Jessod Framework und nach dem WebdavServlet
im Apache Tomcat 7 Quellcode modelliert. Ich bin auf ein Problem gestoßen, das einen Fehler von einer meiner Funktionen zurückbringt.
Mein webdav-Dienst sollte entweder XML oder JSON zurückgeben, abhängig vom Wert des Headers Accept
, der vom Aufrufer gesendet wurde. Ich habe einen Datentyp namens RepXmlJson
:
Ich verwende diesen Datentyp als Rückgabewert meiner Dienste, insbesondere die Funktion lockWebdavR
. Ich versuche, einen Status 423 (gesperrt) zurückzugeben, wenn eine Ressource derzeit gesperrt ist. Mein Code sieht so aus:
Ich erhalte den folgenden Fehler:
%Vor% Ich habe das Buch "Entwickeln von Webanwendungen mit Haskell und Yesod" durchsucht, kann aber kein Beispiel für die Rückgabe eines Fehlers finden der richtige Typ ( Rep...
).
Wie erstelle ich eine RepXmlJson
mit dem korrekten Fehlerstatus?
Die normale Beendigung eines Handlers führt immer zu einem Statuscode von 200. Um dies zu überschreiben, müssen Sie eine andere Antwort senden. In Ihrem Fall könnten Sie sendResponseStatus
ausprobieren. Andere Möglichkeiten wären sendWaiResponse
und redirectWith
, obwohl ich bezweifle, dass letzteres nützlich sein wird.
Tags und Links haskell yesod http-status-codes