WCF Rest-Service: Unterschied zwischen den Versionen
Deko (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
imported>TechCorner-Redaktion Softwareentwicklung: Überarbeitung |
||
| (2 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
== | == Aufgabenstellung == | ||
Einen WCF-Service mit REST/JSON-Funktionalität versehen | Einen WCF-Service mit REST/JSON-Funktionalität versehen. | ||
== | |||
{{Hinweis|WCF 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. | |||
[[Datei: WCF_Service.jpg.png|left| | |||
[[Datei:WCF_Service.jpg.png|thumb|left|400px|Projektmappe SOAP-Service]]<br clear="all" /> | |||
'''ISimpleService:''' | '''ISimpleService (SOAP):''' | ||
< | <syntaxhighlight lang="csharp"> | ||
[ServiceContract] | |||
public interface ISimpleService | public interface ISimpleService | ||
{ | { | ||
[OperationContract] | [OperationContract] | ||
string GetSimpleData(int id); | |||
} | } | ||
</ | </syntaxhighlight> | ||
''' | '''Interface um WCF-Attribute erweitern (REST):''' | ||
<syntaxhighlight lang="csharp"> | |||
[ServiceContract] | |||
< | |||
public interface ISimpleService | public interface ISimpleService | ||
{ | { | ||
[OperationContract] | [OperationContract] | ||
[WebInvoke(UriTemplate = "getsimpledata?id={id}", Method = "GET", | |||
RequestFormat = WebMessageFormat.Json, | |||
ResponseFormat = WebMessageFormat.Json)] | |||
string GetSimpleData(int id); | |||
} | } | ||
</ | </syntaxhighlight> | ||
'''SimpleService:''' | '''SimpleService:''' | ||
< | <syntaxhighlight lang="csharp"> | ||
public class SimpleService : ISimpleService | |||
{ | { | ||
public string GetSimpleData(int id) | public string GetSimpleData(int id) | ||
{ | |||
return string.Format("Folgende Id wurde uebergeben: {0}", id); | |||
} | |||
} | |||
</ | </syntaxhighlight> | ||
'''web.config anpassen:''' | |||
<syntaxhighlight lang="xml"> | |||
'''web.config:''' | <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> | </system.serviceModel> | ||
</ | </syntaxhighlight> | ||
'''Aufruf und Antwort:''' | |||
<syntaxhighlight lang="text"> | |||
'''Aufruf | GET http://localhost:49880/SimpleService.svc/getsimpledata?id=123456789 | ||
< | |||
"Folgende Id wurde uebergeben: 123456789" | |||
</syntaxhighlight> | |||
== Unterstützung von m.a.x. it == | |||
Bei plattformübergreifender App- und Softwareentwicklung unterstützt Sie m.a.x. it mit [https://www.max-it.de/development/individuelle-softwareentwicklung/ individueller Softwareentwicklung]. | |||
. | |||
{{Uebermax}} | |||
[[Kategorie:Softwareentwicklung]] | |||
Aktuelle Version vom 15. September 2026, 00:00 Uhr
Aufgabenstellung
Einen WCF-Service mit REST/JSON-Funktionalität versehen.
Lösung
Aus einem SOAP-Service wird per WCF-Attributen ein REST/JSON-Service. Ausgangspunkt ist ein einfacher 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 Softwareentwicklung 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?
