ホーム
おまかせ表示
ログイン
設定
MonoBookについて
免責事項
MonoBook
検索
「
NServiceKit/はじめに/最初のWebサービスを作ってみる
」を編集中
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。
スパム攻撃防止用のチェックです。 けっして、ここには、値の入力は
しない
でください!
==ステップ1:プロジェクトを作る== [[NServiceKit]]はいくつかの方法でホストすることができる。 * コンソールアプリケーション * Windowsサービス * [[ASP.NET]]や[[ASP.NET MVC]]などの一部として同化する このチュートリアルでは「空のASP.NET([[ASP.NET MVC]]じゃないよ)」上にNServiceKitを使ったWebサービスを作ってみる。 ==ステップ2:NServiceKitをインストールする == NuGetでNServiceKitの主要パッケージを一気にぶちこむ。 *NServiceKit.Host.AspNet 2015年10月時点のNServiceKitパッケージは本家[[ServiceStack]]ほど親切ではないのでweb.configは自分で用意する必要がある。 <source lang="xml"> <system.web> <httpHandlers> <add path="*" type="NServiceKit.WebHost.Endpoints.NServiceKitHttpHandlerFactory, NServiceKit" verb="*"/> </httpHandlers> </system.web> </source> ==ステップ3:NServiceKitの初期化コードを準備する== プロジェクトに「Global.asax.cs」ファイルが無ければ手動で追加する。Xamarin Studioの新しいファイルを追加するダイアログでは「ASP.NET Web Forms」の「コードビハインド付きGlobal.asax」がこれに該当する。 Global.asax.csファイル を追加したら以下のように編集する。 この例では指定したクラスと同一のアセンブリ内にあるサービス(NServiceKit.ServiceInterface.Serviceクラスを継承したクラス)を登録している。 <source lang="csharp"> using System.Collections; using System.ComponentModel; using System.Web; using System.Web.SessionState; namespace WebApiServerV1 { public class Global : System.Web.HttpApplication { public class AppHost : NServiceKit.WebHost.Endpoints.AppHostBase { //NSerivceKitではAppHostBaseの引数に指定されたアセンブリの中にあるサービスが自動的に列挙される。 public AppHost() : base("Hello Web Services", typeof(AppHost).Assembly) { } public override void Configure(Funq.Container container) { //register any dependencies your services use, e.g: //container.Register<ICacheClient>(new MemoryCacheClient()); } } protected virtual void Application_Start (Object sender, EventArgs e) { var app = new AppHost(); app.Init(); } } } </source> ==ステップ4:サービスを作ってみる== NServiceKitのサービスは[[ドメイン駆動設計]](通称[[DDD]])という哲学に従い以下の3つの要素から構成される。 *リクエストDTO *レスポンスDTO *サービス実装 ===リクエストDTO=== サービスの[[引数]]に相当する。Route属性で呼び出し用の[[URL]]がどうなるかもここで決まる。 <source lang="csharp"> using ServiceStack.ServiceHost; namespace WebApiServerV1 { [Route("/hello")] [Route("/hello/{Name}")] public class Hello { public string Name { get; set; } } } </source> ===レスポンスDTO=== サービスの[[戻り値]]に相当する。 <source lang="csharp"> using ServiceStack.ServiceHost; namespace WebApiServerV1 { public class HelloResponse { public string Result { get; set; } } } </source> ===サービス実装=== サービスの本体を実装する。GetだのPostだのを実装する。なんでも受け付ける場合はAnyとなる。 <source lang="csharp"> using ServiceStack.ServiceInterface; namespace WebApiServerV1 { public class HelloService : Service { public object Any(Hello request) { return new HelloResponse { Result = "Hello, " + request.Name }; } } } </source> ==動かしてみる== [[Xamarin Studio]] で実行してみると[[Safari]]や[[Chrome]]、[[Vivaldi]]などのデフォルトブラウザが立ち上がると思われる。 ==関連項目== *[[NServiceKit]] ==参考文献== {{reflist}} {{stub}} [[category: NServiceKit]] [[category: Xamarin.Studio]]
編集内容の要約:
MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
MonoBook:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
このページを編集するには、下記の確認用の質問に回答してください (
詳細
):
1たす1は?(全角で入力してください)
キャンセル
編集の仕方
(新しいウィンドウで開きます)
このページで使用されているテンプレート:
テンプレート:Reflist
(
編集
)
テンプレート:Stub
(
編集
)