私はついに完全にPOになり、ビジネスに完全に連絡を取りました。これは私が作成したものです-それは私のマシンで動作し、それが局所的な現象ではないことを願っています。:)
IRestService.cs-宣言、あなたのコードが連絡先のクライアントに約束するもの
[ServiceContract]
public interface IRestService
{
[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Xml,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "xml/{id}")]
String XmlData(String id);
[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "json/{id}")]
String JsonData(String id);
}
RestService.svc.cs-実装、コードが実際にクライアントに対して行うこと
public class RestService : IRestService
{
public String XmlData(String id)
{
return "Requested XML of id " + id;
}
public String JsonData(String id)
{
return "Requested JSON of id " + id;
}
}
Web.config-構成、クライアントに向かう途中でコードがどのように処理されるか
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<services>
...
</services>
<behaviors>
</behaviors>
</system.serviceModel>
</configuration>
services-サービスの性質を説明するタグの内容
<service name="DemoRest.RestService"
behaviorConfiguration="ServiceBehavior">
<endpoint address="" binding="webHttpBinding"
contract="DemoRest.IRestService"
behaviorConfiguration="web"></endpoint>
</service>
動作-サービスの動作とエンドポイントを説明するタグの内容
<serviceBehaviors>
<behavior name="ServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="web">
<webHttp/>
</behavior>
</endpointBehaviors>
Index.html-エグゼキュータ、コードを次のように呼び出すことができます
<html>
<head>
<script>
...
</script>
<style>
...
</style>
</head>
<body>
...
</body>
</html>
script -JavaScriptで実行可能ファイルを説明するタグの内容
window.onload = function () {
document.getElementById("xhr").onclick = function () {
var xhr = new XMLHttpRequest();
xhr.onload = function () { alert(xhr.responseText); }
xhr.open("GET", "RestService.svc/xml/Viltersten");
xhr.send();
}
}
style-外観を説明するタグの内容
.clickable
{
text-decoration: underline;
color: #0000ff;
}
body-マークアップ構造を説明するタグの内容
<ul>
<li>XML output <a href="RestService.svc/xml/123">
<span class="clickable">here</span></a></li>
<li>JSON output <a href="RestService.svc/json/123">
<span class="clickable">here</span></a></li>
<li>XHR output <span id="xhr" class="clickable">here</span></li>
すべてがと呼ばれるプロジェクトに保存されDemoRest
ます。サービスの宣言と実装のために独自のファイルを作成し、デフォルトのファイルを削除しました。のディレクティブとusing
XMLバージョン宣言は、空間的な理由から省略されています。
これで、次のURLを使用して応答を取得できます。
localhost:12345/RestService.svc/xml/Konrad
localhost:12345/RestService.svc/json/Viltersten
- 他の誰かがそれを機能させるのですか?
- 改善または明確化に関する提案はありますか?