WCF Rest-Service: Unterschied zwischen den Versionen

Zeile 2: Zeile 2:
 
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.<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]]
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'''===
Mehr Informationen zu unseren Softwarelösungen und Services finden Sie auf [https://www.max-it.de/techcorner/WCF_Rest-Service https://www.max-it.de/Softwarelösungen]
+
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 />
 
Ü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.<br />
+
Als etabliertes Münchner Systemhaus zeichnen wir uns seit 1989 als verlässlicher IT-Partner mittelständischer und<br />
 +
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 22. Januar 2020, 11:35 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