差分
== ステップ3: Webサービスを作ってみる ==
もし「Global.asax.cs」ファイルが無ければ手動で追加する。Xamarin Studioの新しいファイルダイアログでは「ASP.NET Web Forms」の「コードビハインド付きGlobal.asax」である。
まず、ServiceStackのサービスは3つの要素から構成されるという基本を覚えよう。
* リクエストDTO
* サービス実装
* レスポンスDTO
これはServiceStackの根底にある[[ドメイン駆動設計]](通称[[DDD]])という[[哲学]]である。
=== 1: Webサービスを定義する(いわゆるリクエストDTO) ===
<source lang="csharp">
using ServiceStack.ServiceHost;
[Route("/hello")]
[Route("/hello/{Name}")]
public class Hello
{
public string Name { get; set; }
}
</source>
=== 2: Webサービスの戻り値を定義する(いわゆるレスポンスDTO) ===
<source lang="csharp">
public class HelloResponse
{
public string Result { get; set; }
}
</source>
=== 3: Webサービスを実装する ===
<source lang="csharp">
using ServiceStack.ServiceInterface;
public class HelloService : Service
{
public object Any(Hello request)
{
return new HelloResponse { Result = "Hello, " + request.Name };
}
}
</source>
== ステップ4: Webサービスを登録してみる ==
最後にWebサービスを初期化し登録する。
Global.asax.csファイルを以下のように編集する。
<source lang="csharp">
using System;
using System.Collections;
using System.ComponentModel;
using System.Web;
using System.Web.SessionState;
using ServiceStack;
public class Global : System.Web.HttpApplication
{
public class HelloAppHost : ServiceStack.AppHostBase
{
//Tell Service Stack the name of your application and where to find your web services
public HelloAppHost() : base("Hello Web Services", typeof(HelloService).Assembly) { }
public override void Configure(Funq.Container container)
{
//register any dependencies your services use, e.g:
//container.Register<ICacheClient>(new MemoryCacheClient());
}
}
protected void Application_Start(Object sender, EventArgs e)
{
new HelloAppHost().Init();
}
}
</source>
これで完成である。ServiceStackに関するすべての構成はAppHostで行われる。いわゆるアプリケーションのエントリポイントのようなものである。
== 動かしてみる ==
== 外部リンク ==
* https://github.com/ServiceStack/ServiceStack/wiki/Create-your-first-webservice
== 参考文献 ==
{{reflist}}
{{stub}}