WCF Rest-Service: Unterschied zwischen den Versionen

(Die Seite wurde neu angelegt: „==='''Aufgabenstellung'''=== Einen WCF-Service mit REST/JSON-Funktionalität versehen: Der WCF-Service. ==='''Lösung'''=== Mit der Hilfe von WCF-Attributen ka…“)
 
(Weitere Informationen)
Zeile 84: Zeile 84:
 
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://mittelstand.max-it.de/Individualloesungen/SW-Entwicklung 
+
https://mittelstand.max-it.de/Software-Loesungen/Individualloesungen
 +
 
 
=== '''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: mailto:techcorner@max-it.de.<br />

Version vom 10. Februar 2016, 10:47 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

https://mittelstand.max-it.de/Software-Loesungen/Individualloesungen

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