11. POCO による Model 定義
public class Contact
{
public int ID { get; set; }
[Required(ErrorMessage = "名前を入力してください")]
public string Name { get; set; }
[Required(ErrorMessage = "メールアドレスを入力してください")]
public string Mail { get; set; }
}
12. $filter
SQL 文の Where 句に相当
$orderby
SQL 文の Order By 句に相当
$skip
指定した数のデータを読み飛ばす
$top
指定した数のデータを取得する
14. 属性による検証
public class Contact
{
public int ID { get; set; }
[Required(ErrorMessage = "名前を入力してください")]
public string Name { get; set; }
[Required(ErrorMessage = "メールアドレスを入力してください")]
public string Mail { get; set; }
}
Model バインディングにより ModelState に検証結果が格納される
15. カスタムフィルターによる処理の拡張
public class ValidationActionFilter : ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext context)
{
var modelState = context.ModelState;
if (!modelState.IsValid) {
dynamic errors = new JsonObject();
foreach (var key in modelState.Keys) {
var state = modelState[key];
if (state.Errors.Any()) { errors[key] = state.Errors.First().ErrorMessage; }
}
context.Response = new HttpResponseMessage<JsonValue>(errors, HttpStatusCode.BadRequest);
}
}
}
18. Getting Started with ASP.NET Web API
http://www.asp.net/web-api
Self Hosting / Dependency Resolver の利用等の情報も
ASP.NET Web API Reference
http://msdn.microsoft.com/en-us/library/hh849329(v=vs.108).aspx
Source Code
http://aspnetwebstack.codeplex.com/
19. WDD 会場内の日経 BP 社ブースと日経 BP 書店にて
プログラミング
Microsoft ASP.NET MVC
特別価格にて先行発売中! (一般発売は 5/8 予定)
プログラミング
Microsoft ASP.NET 4
特別価格にて発売中! (特別価格専用, 6/30 まで)
http://ec.nikkeibp.co.jp/nsp/aspnetmvc/