ASP.NET WebAPI

qiita.com

ASP.NET WebAPIを試した。
上の記事に従ったら問題なく出来た。
プロジェクトのテンプレートはWebAPIもあるんだけど、そっちはテンプレートの中身が複雑なのでEmptyテンプレートにWebAPIのチェック入れて作るのが良いと思う。
以下気になった点

(1)Getメソッドの戻り値の型
コントローラーにGetメソッドを記述すると該当URLのGetが使えるとかそんな感じ。
Getメソッドの戻り値の型はstringでも何でも良いらしく、ASP.NETの方で勝手にJSONシリアライズしてくれる?
ただ、普通のシリアライズと同じようにクラスに[DataContract]属性をつける必要がある。

(2)URLのクエリパラメータとGetメソッドの引数の関係
Get(int id, string message)と書いたらクエリパラメータをどう書けば引数に放り込んでくれるのか。
WebAPIConfigのrouteTemplateに/{id}/と書いてあるとそれを読み取って自動的にidに放り込んでくれる感じだろうか?
クエリパラメータにmessage=helloを入れとくとやっぱり自動的にmessageのところに放り込まれていた。
そういうもんか。

(3)クロスドメイン問題
IISでWebAPIを立ち上げて、FirefoxChromeからローカルでXMLHttpRequestを使ってAPIを実行させるとドメインが違うといわれてエラーになる。
これだとデバッグがしにくいのでドメインが違っても実行できるようにしたい。
下の記事見てコントローラーにEnableCors属性をつけたら実行できるようになった。
ローカルのoriginがわからなかったので何でも受け入れてくれる"*"で妥協。

miso-soup3.hateblo.jp