ASP.NET WEB API 開発体験

44,733 views

Published on

2013/1/26 Hokuriku.NET vol11 LT の資料です

0 Comments
15 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
44,733
On SlideShare
0
From Embeds
0
Number of Embeds
3,400
Actions
Shares
0
Downloads
50
Comments
0
Likes
15
Embeds 0
No embeds

No notes for slide

ASP.NET WEB API 開発体験

  1. 1. ASP.NET WEB API 開発体験 @miso_soup3 2013/1/26 Hokuriku.NET vol.11 LT
  2. 2. ゴールASP.NET WEB API ってこんな感じなんだ対象者ASP.NET WEB API をご存じない方ASP.NET MVC を触ったことがある方
  3. 3. 目次1.WEB API を作ろう2.ASP.NET MVC と似ている…が!3.アクションメソッドの実装4.公開へ!
  4. 4. 1.WEB API を作ろう太郎さんの上司よりマルチデバイス対応の WEB サービスを作成することになりました。太郎さんは、WEB API を作成してください。
  5. 5. 1.WEB API を作ろう Html + 太郎さん↓ JavaScipt Win RT WEB API iOS
  6. 6. 1.WEB API を作ろうWEB API って何だろう?例: Twitter API https://dev.twitter.com/docs/api/1.1GET statuses/mentions_timlineGET statuses/user_timelineGET search/tweetsPOST direct_messages/new → HTTP 通信を使って、 アプリケーション機能を提供する仕組み
  7. 7. 1.WEB API を作ろう「WCF ?」2012 / 8 にリリースされた ASP.NET MVC 4 ASP.NET WEB API → ASP.NET WEB API を使って、 WEB API を実装することに。
  8. 8. 2.ASP.NET MVC と似ている…が!太郎さんの友達よりASP.NET WEB API って、ASP.NET MVC と似ているらしいよ
  9. 9. 2.ASP.NET MVC と似ている…が!認証が必要なことを表す属性を付けてみました。
  10. 10. 2.ASP.NET MVC と似ている…が!動かなかった!
  11. 11. 2.ASP.NET MVC と似ている…が!別のライブラリでした。ASP.NET MVC ではASP.NET WEB API では
  12. 12. 2.ASP.NET MVC と似ている…が! ASP.NET MVC ASP.NET WEB APISystem.Web.Mvc.dll System.Web.Http.dllの中に、 の中に、・Authorize 属性 ・Authorize 属性・Controller ・ApiController・ActionFilterAttribute ・ActionFilterAttributeなどなど・・・ などなど・・・ 同じような構造だけど、違う!
  13. 13. 2.ASP.NET MVC と似ている…が!ASP.NET WEB API はもともと WCF の一部として開発。ASP.NET MVC のインフラストラクチャに似せながら作られた。(ASP.NET MVC の、 “IoC“ “設定は規約より勝る“ “シンプル”なところが本当に素晴らしかったんです。)
  14. 14. 3.アクションメソッドの実装モデルを作りました。 ← アノテーションに よるモデル検証
  15. 15. 3.アクションメソッドの実装Person を作成する API を実装しました。 引数を、URL や Body から作 成するモデルバインダ 検証情報が格納さ れた ModelState メソッド名の規約による、 実行メソッドの選択。
  16. 16. 3.アクションメソッドの実装・フィルター属性・モデルバインダ・モデル検証・アクションメソッドの選択・ルーティングなどなど→ ASP.NET MVC と似ているところがたくさん!
  17. 17. 4.公開へ!JavaScript 側を実装している花子さんAPI 使ってみたいから、公開しておいて!あ、あとどんな風に使えばいいか、ドキュメントもちょうだいね!
  18. 18. 4.公開へ!Azure WEB Site を使って公開しました。
  19. 19. 4.公開へ!ソリューションエクスプローラから、「発行」
  20. 20. 4.公開へ!たった数分で公開完了。
  21. 21. 4.公開へ!次はドキュメント!Nuget に、自動でヘルプページを作成してくれるパッケージがあるらしい。 ※プレビュー版(2013/01/26)
  22. 22. 4.公開へ!パッケージをインストールすると、ASP.NET MVC で、ヘルプページが作成されます。
  23. 23. 4.公開へ!ルーティングも反映。コメントも表示できます。
  24. 24. 4.公開へ!API の詳細ヘルプページ。パラメータの説明も。
  25. 25. 4.公開へ!どのようなレスポンスが返ってくるかなども表示。
  26. 26. 4.公開へ!さらに! ※プレビュー版(2013/01/26)WebApiTestClient のパッケージを追加すると、先のヘルプページ上で、API を実行できます。
  27. 27. 4.公開へ!「Test API」 をクリックすると・・・
  28. 28. 4.公開へ!HTTP リクエストを編集し、実行することができます。
  29. 29. 4.公開へ!結果も確認することができます。
  30. 30. 4.公開へ!WEB API とヘルプページをAzure にて公開することができました。便利!
  31. 31. 最後に太郎さんが体験したこと・WEB API を提供するフレームワーク・ASP.NET MVC の構造と似ている ・フィルター属性 ・モデルバインダ ・モデル検証 ・アクションメソッドの選択 ・・・・・けど、ASP.NET MVC とは別のもの。・Azure に発行・ヘルプページ作成、WEB API のデバッグ
  32. 32. 他にも・・・・ASP.NET WEB API の Self-Host でテストhttp://d.hatena.ne.jp/taedium/20121218/p1 IIS なしで動く Self Host 機能を使って、テストをする方法です。・Http Client として使えるライブラリ(System.Net.Http) var client = new HttpClient(); var response = await client.GetAsync(“api/person”);http://www.asp.net/web-api/overview/web-api-clients/calling-a-web-api-from-a-net-client・ASP.NET WEB API HTTP Message Lifecyclehttp://www.microsoft.com/en-us/download/details.aspx?id=36476 ASP.NET WEB API のパイプラインが1枚のポスターに。
  33. 33. ありがとうございました!

×