WCF Rest-Service

Aus maxTechCorner

Aufgabenstellung

Einen WCF-Service mit REST/JSON-Funktionalität versehen.


HinweisWCF ist eine ältere .NET-Framework-Technologie. In modernem .NET (Core/5+) werden REST-Services üblicherweise mit ASP.NET Core Web API umgesetzt. Das Beispiel wurde mit .NET 4.5 erstellt.

Lösung

Aus einem SOAP-Service wird per WCF-Attributen ein REST/JSON-Service. Ausgangspunkt ist ein einfacher SOAP-Service.

Projektmappe SOAP-Service


ISimpleService (SOAP):

[ServiceContract]
public interface ISimpleService
{
    [OperationContract]
    string GetSimpleData(int id);
}

Interface um WCF-Attribute erweitern (REST):

[ServiceContract]
public interface ISimpleService
{
    [OperationContract]
    [WebInvoke(UriTemplate = "getsimpledata?id={id}", Method = "GET",
               RequestFormat = WebMessageFormat.Json,
               ResponseFormat = WebMessageFormat.Json)]
    string GetSimpleData(int id);
}

SimpleService:

public class SimpleService : ISimpleService
{
    public string GetSimpleData(int id)
    {
        return string.Format("Folgende Id wurde uebergeben: {0}", id);
    }
}

web.config anpassen:

<system.serviceModel>
  <services>
    <service name="SimpleWCFRestService.SimpleService" behaviorConfiguration="serviceBehavior">
      <endpoint address="" binding="webHttpBinding" contract="SimpleWCFRestService.ISimpleService" behaviorConfiguration="Web" />
    </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>

Aufruf und Antwort:

GET http://localhost:49880/SimpleService.svc/getsimpledata?id=123456789

"Folgende Id wurde uebergeben: 123456789"

Unterstützung von m.a.x. it

Bei plattformübergreifender App- und Software­entwicklung unterstützt Sie m.a.x. it mit individueller Softwareentwicklung.


Über m.a.x. it Die m.a.x. Informationstechnologie AG ist seit über 30 Jahren IT-Partner mittelständischer und großer Unternehmen in München und bietet maßgeschneiderte Lösungen und Services in den Bereichen Cloud, Cybersecurity, Netzwerk, Windows, Linux und Softwareentwicklung. Sie haben eine Frage zu diesem Artikel oder brauchen Unterstützung? Kontakt aufnehmen