WCF Rest-Service: Unterschied zwischen den Versionen
Deko (Diskussion | Beiträge) |
Deko (Diskussion | Beiträge) |
||
| 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. | + | 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 /> |
| − | 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:''' | '''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 /> |
'''ISimpleService:''' | '''ISimpleService:''' | ||
<pre>[ServiceContract] | <pre>[ServiceContract] | ||
| Zeile 94: | Zeile 94: | ||
[http://mailto:techcorner@max-it.de techcorner@max-it.de].<br /> | [http://mailto:techcorner@max-it.de techcorner@max-it.de].<br /> | ||
| − | Über m.a.x. Informationstechnologie AG: <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 | + | 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. |
| − | 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 | ||
Version vom 14. Mai 2020, 13:42 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

