「ServiceStack/はじめに/最初のWebサービスを作ってみる」の版間の差分
ページの作成:「== ステップ1: プロジェクトを作る == ServiceStackはいくつかの方法でホストすることができる。 * コンソールアプリケーシ...」 |
|||
| (3人の利用者による、間の4版が非表示) | |||
| 42行目: | 42行目: | ||
== ステップ3: Webサービスを作ってみる == | == ステップ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サービスを登録してみる == | == ステップ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で行われる。いわゆるアプリケーションのエントリポイントのようなものである。 | |||
== 動かしてみる == | == 動かしてみる == | ||
| 51行目: | 124行目: | ||
== 外部リンク == | == 外部リンク == | ||
* https://github.com/ServiceStack/ServiceStack/wiki/Create-your-first-webservice | * https://github.com/ServiceStack/ServiceStack/wiki/Create-your-first-webservice | ||
== 参考文献 == | |||
{{reflist}} | |||
{{stub}} | {{stub}} | ||