らびたろちゃんにっきスマートフォン用の表示で見るらびたろちゃんにっきこの広告は、90日以上更新していないブログに表示しています。2013の8日目の記事です。書けない日の分を書き続けるのもアレですので、かけていない日の分を空けます(^^;前回は、プロジェクトの細かい設定と、モデルの作成をしました。今回からモジュール(コントローラ)を作成していこうと思います。モジュールについては少し細かく書いていこうと思います。くじルーティングの構文HTTPメソッドパターン複数のパターンが重複した場合アクションルーティングの構文ドキュメントは以下です。GitHubルーティングについては、AC2日目の記事で動作確認をした際に、簡単にご紹介しました。}}このように、ルーティングをはモジュールクラスのコンストラクタで指定します。dynamic>です。それぞれの項目に指定できる値をみてみます。PATCHが指定できます。HEAD以外はそれぞれの名前のインデクサーが定義されています。HEADについては、GETのインデクサーに定義したものが使われるようです。パターンパターンは、ルートからの相対URLを指定します。パターン構文はNancyFxである程度用意されており、それで十分こと足りると思いますが、独自に定義することも可能です。パターンにはスコアによる優先順位があります。同じようなルーティングが定義されている場合は、カッコ内の数値が高い順に優先されます。NancyFxで用意されているルーティングは以下のとおりです。ように、URLに完全一致する場合に指定します。ように、変数にキャプチャーできるパターンです。/blog/{date}/comments/{id}のように、リテラルと組み合わせて使用します。/{name?}のように、キャプチャー名に?をつけることで、そのURLを省略可能にできます。/{name?unnamed}のように、省略可能なキャプチャー変数にデフォルト値を設定することができます。使い道が浮かばない・・・。/(?<age>[\d]{1,2})のように、正規表現を利用して値をキャプチャーします。/{name*}のように、キャプチャー変数名に*をつけることで、スラッシュ以降のセグメントを可変長引数のようにキャプチャーします。^(?<name>[a-z]{3,10}(?:/{1})(?<action>[a-z]{5,10}))$のように、スラッシュ以降のパスを全て正規表現でキャプチャーします。/{file}.xmlのように、キャプチャーとリテラルを組み合わせる方法です。APIなどを実装する際に使えます。複数のパターンが重複した場合さきほど説明したとおり、複数のパターンが重複した場合はスコアによる順位付けがなされます。以下のようなルーティングを定義したとします。Nancy";};/{category}と/sayhelloのルーティングを定義しましたが、ブラウザから/sayhelloとアクセスした場合に重複してますね。このようにルーティングが重複した場合はスコアの大きいほうが優先されますので、スコア10,000の/sayhelloが適用されます。結果は実際にブラウザからアクセスして試してみてください。アクションルーティングアクションには、リクエストが指定したルーティングに一致した場合に呼び出される動作を指定します。引数にはdynamic型のインスタンスが渡され、URLでキャプチャした値を取得することができます。リクエストを処理するために必要な値などについては、引数以外にRequestやContextなどのプロパティが定義されています。レスポンスを返すためにはResponseというプロパティを使いレスポンスを生成するか、Viewプロパティを使いView経由で返す、あるいな独自のレスポンスを定義することもできます。ViewBagを利用することもできます。まとめ今回は、コントローラと同じ働きをするモジュールについて、ルーティングを定義する方法を中心にまとめました。基本的なルーティングの定義については、ここでまとめた内容でまかなえると思います。これ以外にも、条件付きルーティングや、非同期処理などの機能もあります。非同期処理についてはどこかでまとえるかもしれませんが、それ以外についてはドキュメントを参照してみてください。次回は、NancyFxで定義されているレスポンスを作成する方法についてまとめ、実際の処理を記述していこうと思います。サーバーを構築して...タイトルの通り。2013の3日目の記事です。2013の2日目の記事です。(1)月別アーカイブリンクヘルプはてなブログお知らせはてなブログをはじめよう!rabitarochanさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。