ASP.NET-Web-API und Statuscode für die Nullantwort

8

Wenn eine angeforderte Ressource nicht vom Service-Layer gefunden wird, der null an den Web-API-Controller zurückgibt; Was ist der beste Weg, um eine HttpStatusCode.NotFound -Antwort an den Client zu senden, ohne ihn hart im Controller zu codieren und zu überprüfen, ob er null ist?

    
Mike Flynn 25.09.2012, 23:17
quelle

2 Antworten

15

Persönlich würde ich nur die Kontrollen in den Controllern nach Oppositional Kommentar tun, aber was Sie verlangen, ist völlig in Ordnung. Wenn Sie wiederum Action-Filter verwenden, die entweder per Controller angeschlossen sind (oder global registriert sind), könnten Sie etwas in diese Richtung tun:

Beispielmodell:

%Vor%

Beispiel Controller:

%Vor%

Der Filter:

%Vor%     
Mark Jones 26.09.2012, 08:24
quelle
11

Ich stimme Mark zu, dass der ActionFilter der richtige Weg ist - kleine Aktionsmethoden sind ein guter Geruch.

HttpActionExecutedContext.Response kann jedoch null sein, wenn eine Ausnahme auftritt; und die NullObjectActionFilter-Klasse, die oben gezeigt wird, kann Fehler HTTP-Statuscodes verdecken. Sie suchen besser nach erfolgreichem Beenden und einem erfolgreichen HTTP-Code.

Hier ist ein Aktionsfilter, den ich verwende:

%Vor%     
crimbo 20.02.2014 01:51
quelle