WCF Rest-Service: Unterschied zwischen den Versionen

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.<br />
+
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<br />
+
 
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<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.
großer Unternehmen aus. Unser Portfolio reicht von IT- Services über individuelle Softwareentwicklung bis hin zur ERP-Beratung.<br />
+
 
<br />
 
 
=== '''Tags''' ===
 
=== '''Tags''' ===
 
.NET, C#, WCF, REST
 
.NET, C#, WCF, REST

Version vom 14. Mai 2020, 13:42 Uhr

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:

WCF Service.jpg.png













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:

WCF Service 2.png












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