Tipps und Tricks rund um .NET und Visual Studio

WCF Antwortformat bei REST-Services dynamisch festlegen
Kommentare

Heute geht es bei .NETversum um WCF und wie dabei das Antwortformat bei REST-Services dynamisch festgelegt werden kann sowie wie eine Hilfeseite für REST-Services eingerichtet werden kann.

Antwortformat bei REST-Services dynamisch festlegen: REST-Services sind in der Lage, den http Header Accept einer Anfrage auszuwerten und das Antwortformat in Hinblick auf diesen entweder auf XML oder JSON festzulegen. Dazu wird für die Eigenschaft AutomaticFormatSelectionEnabled des Behaviors webHttp der Wert true festgelegt. Um XML anzufordern, ist Accept auf den Wert text/xml zu setzen; für JSON auf application/json.

Darüber hinaus kann das zu verwendende Antwortformat auch dynamisch im Zuge der Abarbeitung einer Servicemethode festgelegt werden. Somit können auch Clients, die nicht in der Lage sind, den Accept Header festzulegen, ein bestimmtes Antwortformat anzufordern. Listing 1 demonstriert das. Zunächst wird der Wert des URL-Parameters format ermittelt. Beinhaltet er den Wert JSON, wird in weiterer Folge über die Eigenschaft WebOperationContext.Current.OutgoingResponse.Format JSON als Ausgabeformat definiert.

Listing 1

public List FindFlights(String von, String nach, String datum)
{
    List result;
    string format;

    format = WebOperationContext.Current.IncomingRequest
                                     .UriTemplateMatch.QueryParameters["format"];

    if (format == "json") {
        WebOperationContext.Current
                               .OutgoingResponse.Format = WebMessageFormat.Json; 
    }
    [...]
    return result;
}  

Hilfeseite für REST-Services: Im Gegensatz zu auf SOAP basierenden Services existiert für REST-Services keine Möglichkeit einer formalen Beschreibung via WSDL – zumindest keine, die sich durchgesetzt hat. Deswegen ist es nicht unüblich, dass Cliententwickler den Zugriff auf REST-Services selbst in die Hand nehmen. WCF 4.0 unterstützt bei dieser Tätigkeit, indem die Möglichkeit einer automatisch generierten Hilfeseite geboten wird. Um WCF anzuweisen, eine Hilfeseite zur Verfügung zu stellen, ist die Eigenschaft helpEnabled des Behaviors webHttp auf true zu setzen:



    

  

Dr. Holger Schwichtenberg (MVP) und FH-Prof. Manfred Steyer arbeiten bei http://www.IT-Visions.de als Softwarearchitekten, Berater und Trainer für .NET-Technologien. Dabei unterstützen sie zahlreiche Unternehmen beim Einsatz von .NET und entwickeln selbst in größeren Projekten. Sie haben zahlreiche Fachbücher geschrieben und gehören seit vielen Jahren zu den Hauptsprechern auf der BASTA. Manfred Steyer ist zudem verantwortlich für den Fachbereich „Software Engineering“ der Studienrichtung „IT und Wirtschaftsinformatik“ an der FH CAMPUS 02 in Graz. Dr. Holger Schwichtenberg unterrichtet in Lehraufträgen an den Fachhochschulen Münster und Graz.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -