WCF Rest-Service: Unterschied zwischen den Versionen
Alar (Diskussion | Beiträge) (→Weitere Informationen) |
Deko (Diskussion | Beiträge) (→Lösung) |
||
(5 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
==='''Aufgabenstellung'''=== | ==='''Aufgabenstellung'''=== | ||
Einen WCF-Service mit REST/JSON-Funktionalität versehen: Der WCF-Service. | Einen WCF-Service mit REST/JSON-Funktionalität versehen: Der WCF-Service. | ||
+ | |||
==='''Lösung'''=== | ==='''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. | + | 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.<br /> |
+ | |||
'''Projekt-Mappe SOAP-Service:''' | '''Projekt-Mappe SOAP-Service:''' | ||
[[Datei: WCF_Service.jpg.png|left|thumb|400px]] | [[Datei: WCF_Service.jpg.png|left|thumb|400px]] | ||
− | <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /> | + | <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /> |
'''ISimpleService:''' | '''ISimpleService:''' | ||
<pre>[ServiceContract] | <pre>[ServiceContract] | ||
Zeile 83: | Zeile 85: | ||
<pre>"Folgende Id wurde übergeben: 123456789"</pre> | <pre>"Folgende Id wurde übergeben: 123456789"</pre> | ||
Hinweis: Das Beispiel zur Erläuterung der Vorgehensweise wurde mit .NET 4.5 erstellt. | Hinweis: Das Beispiel zur Erläuterung der Vorgehensweise wurde mit .NET 4.5 erstellt. | ||
+ | |||
==='''Weitere Informationen'''=== | ==='''Weitere Informationen'''=== | ||
− | https:// | + | Mehr Informationen zu unseren Softwarelösungen und Services finden Sie auf<br /> |
+ | [https://www.max-it.de/techcorner/WCF_Rest-Service www.max-it.de/Softwarelösungen] | ||
=== '''Kontakt''' === | === '''Kontakt''' === | ||
− | Wenn Sie Fragen oder Anmerkungen zu diesem Artikel haben, melden Sie sich bitte bei uns: mailto:techcorner@max-it.de.<br /> | + | Wenn Sie Fragen oder Anmerkungen zu diesem Artikel haben, melden Sie sich bitte bei uns:<br /> |
+ | [http://mailto:techcorner@max-it.de techcorner@max-it.de].<br /> | ||
+ | |||
+ | '''Über m.a.x. Informationstechnologie AG:''' <br /> | ||
+ | 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''' === | === '''Tags''' === | ||
.NET, C#, WCF, REST | .NET, C#, WCF, REST |
Aktuelle Version vom 14. Mai 2020, 13:43 Uhr
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
www.max-it.de/Softwarelösungen
Kontakt
Wenn Sie Fragen oder Anmerkungen zu diesem Artikel haben, melden Sie sich bitte bei uns:
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