WCF Rest-Service
Inhaltsverzeichnis
Aufgabenstellung
Einen WCF-Service mit REST/JSON-Funktionalität versehen: Der WCF-Service.
Lösung
Mit der Hilfe von WCF-Attributen kann aus einem normalen SOAP-Service mit WCF ein WCF-Service mit REST/JSON-Funktionalität erstellt werden. Anschließend muss noch die Konfigurationsdatei des Service ein wenig angepasst werden. Als Ausgangspunkt nehmen wir einen normalen SOAP-Service mit einer einfachen Methode. Projekt-Mappe SOAP-Service:
ISimpleService:
[ServiceContract] public interface ISimpleService { [OperationContract] string GetSimpleData(int id); }
SimpleService:
public class SimpleService : ISimpleService { public string GetSimpleData(int id) { return string.Format("Folgende Id wurde übergeben: {0}", id); } }
Für die Verwandlung in einen REST-Service wird die Interface-Klasse um WCF-Attribute erweitert.
Projekt-Mappe REST-Service:
ISimpleService:
[ServiceContract] [WebInvoke(UriTemplate = "getsimpledata?id={id}", Method = "GET", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)] public interface ISimpleService { [OperationContract] string GetSimpleData(int id); }
UriTemplate- getsimpledata?id={id}: Das UriTemplate besteht aus Pfad und Abfrage-Parameter.
ResponseFormat- WebMessageFormat.Json -> Die Daten werden im JSON-Format zurückgegeben.
SimpleService:
public class SimpleService : ISimpleService { public string GetSimpleData(int id) { return string.Format("Folgende Id wurde übergeben: {0}", id); } }
Anschließend muss die web.config noch angepasst werden.
web.config:
<system.serviceModel> <services> <service name="SimpleWCFRestService.SimpleService" behaviorConfiguration="serviceBehavior"> <endpoint address="" binding="webHttpBinding" contract="SimpleWCFRestService.ISimpleService" behaviorConfiguration="Web"> </endpoint> </service> </services> <behaviors> <serviceBehaviors> <behavior name="serviceBehavior"> <serviceMetadata httpGetEnabled="true"/> <serviceDebug includeExceptionDetailInFaults="false"/> </behavior> </serviceBehaviors> <endpointBehaviors> <behavior name="Web"> <webHttp /> </behavior> </endpointBehaviors> </behaviors> <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> </system.serviceModel>
So jetzt ist es soweit: Aus dem SOAP-Service ist ein REST-Service geworden, der die Daten im JSON-Format zurückgibt.
Aufruf REST-Service:
http://localhost:49880/SimpleService.svc/getsimpledata?id=123456789
Antwort im JSON-Format:
"Folgende Id wurde übergeben: 123456789"
Hinweis: Das Beispiel zur Erläuterung der Vorgehensweise wurde mit .NET 4.5 erstellt.
Weitere Informationen
Mehr Informationen zu unseren Softwarelösungen und Services finden Sie auf https://www.max-it.de/Softwarelösungen
Kontakt
Wenn Sie Fragen oder Anmerkungen zu diesem Artikel haben, melden Sie sich bitte bei uns: mailto:techcorner@max-it.de.
Über m.a.x. Informationstechnologie AG:
Als etabliertes Münchner Systemhaus zeichnen wir uns seit 1989 als verlässlicher IT-Partner mittelständischer und großer Unternehmen aus. Unser Portfolio reicht von IT- Services über individuelle Softwareentwicklung bis hin zur ERP-Beratung.
Tags
.NET, C#, WCF, REST