SlideShare une entreprise Scribd logo
1  sur  33
Télécharger pour lire hors ligne
ASP.NET WEB API 開発体験

                  @miso_soup3
         2013/1/26 Hokuriku.NET vol.11 LT
ゴール

ASP.NET WEB API ってこんな感じなんだ


対象者

ASP.NET WEB API をご存じない方
ASP.NET MVC を触ったことがある方
目次

1.WEB API を作ろう
2.ASP.NET MVC と似ている…が!
3.アクションメソッドの実装
4.公開へ!
1.WEB API を作ろう

太郎さんの上司より



マルチデバイス対応の WEB サービスを作成する
ことになりました。
太郎さんは、WEB API を作成してください。
1.WEB API を作ろう


           Html +     太郎さん↓
          JavaScipt


 Win RT               WEB API

            iOS
1.WEB API を作ろう
WEB API って何だろう?

例: Twitter API https://dev.twitter.com/docs/api/1.1

GET statuses/mentions_timline
GET statuses/user_timeline
GET search/tweets
POST direct_messages/new

           → HTTP 通信を使って、
             アプリケーション機能を提供する仕組み
1.WEB API を作ろう
「WCF ?」


2012 / 8 にリリースされた
    ASP.NET MVC 4
    ASP.NET WEB API

             → ASP.NET WEB API を使って、
               WEB API を実装することに。
2.ASP.NET MVC と似ている…が!

太郎さんの友達より



ASP.NET WEB API って、
ASP.NET MVC と似ているらしいよ
2.ASP.NET MVC と似ている…が!
認証が必要なことを表す属性を付けてみました。
2.ASP.NET MVC と似ている…が!
動かなかった!
2.ASP.NET MVC と似ている…が!
別のライブラリでした。

ASP.NET MVC では



ASP.NET WEB API では
2.ASP.NET MVC と似ている…が!

    ASP.NET MVC          ASP.NET WEB API

System.Web.Mvc.dll       System.Web.Http.dll
の中に、                     の中に、

・Authorize 属性            ・Authorize 属性
・Controller              ・ApiController
・ActionFilterAttribute   ・ActionFilterAttribute
などなど・・・                  などなど・・・

            同じような構造だけど、違う!
2.ASP.NET MVC と似ている…が!

ASP.NET WEB API はもともと WCF の一部として開発。

ASP.NET MVC のインフラストラクチャ
に似せながら作られた。

(ASP.NET MVC の、
      “IoC“
      “設定は規約より勝る“
      “シンプル”
なところが本当に素晴らしかったんです。)
3.アクションメソッドの実装
モデルを作りました。




             ← アノテーションに
              よるモデル検証
3.アクションメソッドの実装
Person を作成する API を実装しました。
                   引数を、URL や Body から作
                   成するモデルバインダ


                        検証情報が格納さ
                        れた ModelState



                    メソッド名の規約による、
                    実行メソッドの選択。
3.アクションメソッドの実装

・フィルター属性
・モデルバインダ
・モデル検証
・アクションメソッドの選択
・ルーティング
などなど


→ ASP.NET MVC と似ているところがたくさん!
4.公開へ!

JavaScript 側を実装している花子さん




API 使ってみたいから、公開しておいて!
あ、あとどんな風に使えばいいか、
ドキュメントもちょうだいね!
4.公開へ!
Azure WEB Site を使って公開しました。
4.公開へ!
ソリューションエクスプローラから、
「発行」
4.公開へ!

たった数分で公開完了。
4.公開へ!
次はドキュメント!

Nuget に、自動でヘルプページを作成してくれる
パッケージがあるらしい。




              ※プレビュー版(2013/01/26)
4.公開へ!



パッケージを
インストールすると、

ASP.NET MVC で、
ヘルプページが
作成されます。
4.公開へ!
ルーティングも反映。
コメントも表示できます。
4.公開へ!
API の詳細ヘルプページ。
パラメータの説明も。
4.公開へ!
どのようなレスポンスが返ってくるか
なども表示。
4.公開へ!

さらに!


                 ※プレビュー版(2013/01/26)


WebApiTestClient のパッケージを追加すると、
先のヘルプページ上で、API を実行できます。
4.公開へ!
「Test API」 をクリックすると・・・
4.公開へ!


HTTP リクエスト
を編集し、
実行することが
できます。
4.公開へ!
結果も確認することができます。
4.公開へ!

WEB API とヘルプページを
Azure にて公開することができました。

便利!
最後に
太郎さんが体験したこと

・WEB API を提供するフレームワーク
・ASP.NET MVC の構造と似ている
      ・フィルター属性
      ・モデルバインダ
      ・モデル検証
      ・アクションメソッドの選択
      ・・・・・けど、ASP.NET MVC とは別のもの。
・Azure に発行
・ヘルプページ作成、WEB API のデバッグ
他にも・・・
・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 Lifecycle
http://www.microsoft.com/en-us/download/details.aspx?id=36476
       ASP.NET WEB API のパイプラインが1枚のポスターに。
ありがとうございました!

Contenu connexe

Tendances

ASP.NET MVC プログラミング入門の入門
ASP.NET MVC プログラミング入門の入門ASP.NET MVC プログラミング入門の入門
ASP.NET MVC プログラミング入門の入門Masuda Tomoaki
 
Aspnet mvc 6の今を紹介
Aspnet mvc 6の今を紹介Aspnet mvc 6の今を紹介
Aspnet mvc 6の今を紹介Makoto Nishimura
 
マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後Akira Inoue
 
Asp Net Mvc 基礎のキソ
Asp Net Mvc 基礎のキソAsp Net Mvc 基礎のキソ
Asp Net Mvc 基礎のキソYoshitaka Seo
 
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説Akira Inoue
 
2016/05/01 Visual Studio with Cordova
2016/05/01 Visual Studio with Cordova2016/05/01 Visual Studio with Cordova
2016/05/01 Visual Studio with Cordovamiso- soup3
 
ASP.NETからASP.NET Coreに移行した話
ASP.NETからASP.NET Coreに移行した話ASP.NETからASP.NET Coreに移行した話
ASP.NETからASP.NET Coreに移行した話Taiga Takahari
 
ASP.NET WebAPI 体験記 #clrh99
ASP.NET WebAPI 体験記 #clrh99ASP.NET WebAPI 体験記 #clrh99
ASP.NET WebAPI 体験記 #clrh99Katsuya Shimizu
 
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~Akira Inoue
 
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
ASP.NET SPA開発をはじめよう~今と未来とステップアップASP.NET SPA開発をはじめよう~今と未来とステップアップ
ASP.NET SPA開発をはじめよう~今と未来とステップアップ慎一 古賀
 
ASP.NETの進化とASP.NET Core Blazorの凄さ
ASP.NETの進化とASP.NET Core Blazorの凄さASP.NETの進化とASP.NET Core Blazorの凄さ
ASP.NETの進化とASP.NET Core Blazorの凄さSho Okada
 
One ASP.NET, OWIN & Katana
One ASP.NET, OWIN & KatanaOne ASP.NET, OWIN & Katana
One ASP.NET, OWIN & Katanamiso- soup3
 
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発Akira Inoue
 
JSON Schema で Web API のスキマを埋めよう
JSON Schema で Web API のスキマを埋めようJSON Schema で Web API のスキマを埋めよう
JSON Schema で Web API のスキマを埋めようVOYAGE GROUP
 
One ASP.NET の今とこれから
One ASP.NET の今とこれからOne ASP.NET の今とこれから
One ASP.NET の今とこれからAkira Inoue
 
Service workerとwebプッシュ通知
Service workerとwebプッシュ通知Service workerとwebプッシュ通知
Service workerとwebプッシュ通知zaru sakuraba
 
Hands on PhotoBlog App with WordPress REST API and App Inventor
Hands on PhotoBlog App with WordPress REST API and App InventorHands on PhotoBlog App with WordPress REST API and App Inventor
Hands on PhotoBlog App with WordPress REST API and App InventorHong Chen
 
VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発
VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発
VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発tomotoshi
 

Tendances (20)

ASP.NET MVC プログラミング入門の入門
ASP.NET MVC プログラミング入門の入門ASP.NET MVC プログラミング入門の入門
ASP.NET MVC プログラミング入門の入門
 
20140322
2014032220140322
20140322
 
Aspnet mvc 6の今を紹介
Aspnet mvc 6の今を紹介Aspnet mvc 6の今を紹介
Aspnet mvc 6の今を紹介
 
マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後
 
Asp Net Mvc 基礎のキソ
Asp Net Mvc 基礎のキソAsp Net Mvc 基礎のキソ
Asp Net Mvc 基礎のキソ
 
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
 
2016/05/01 Visual Studio with Cordova
2016/05/01 Visual Studio with Cordova2016/05/01 Visual Studio with Cordova
2016/05/01 Visual Studio with Cordova
 
ASP.NETからASP.NET Coreに移行した話
ASP.NETからASP.NET Coreに移行した話ASP.NETからASP.NET Coreに移行した話
ASP.NETからASP.NET Coreに移行した話
 
20141129-dotNet2015
20141129-dotNet201520141129-dotNet2015
20141129-dotNet2015
 
ASP.NET WebAPI 体験記 #clrh99
ASP.NET WebAPI 体験記 #clrh99ASP.NET WebAPI 体験記 #clrh99
ASP.NET WebAPI 体験記 #clrh99
 
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~
 
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
ASP.NET SPA開発をはじめよう~今と未来とステップアップASP.NET SPA開発をはじめよう~今と未来とステップアップ
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
 
ASP.NETの進化とASP.NET Core Blazorの凄さ
ASP.NETの進化とASP.NET Core Blazorの凄さASP.NETの進化とASP.NET Core Blazorの凄さ
ASP.NETの進化とASP.NET Core Blazorの凄さ
 
One ASP.NET, OWIN & Katana
One ASP.NET, OWIN & KatanaOne ASP.NET, OWIN & Katana
One ASP.NET, OWIN & Katana
 
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
 
JSON Schema で Web API のスキマを埋めよう
JSON Schema で Web API のスキマを埋めようJSON Schema で Web API のスキマを埋めよう
JSON Schema で Web API のスキマを埋めよう
 
One ASP.NET の今とこれから
One ASP.NET の今とこれからOne ASP.NET の今とこれから
One ASP.NET の今とこれから
 
Service workerとwebプッシュ通知
Service workerとwebプッシュ通知Service workerとwebプッシュ通知
Service workerとwebプッシュ通知
 
Hands on PhotoBlog App with WordPress REST API and App Inventor
Hands on PhotoBlog App with WordPress REST API and App InventorHands on PhotoBlog App with WordPress REST API and App Inventor
Hands on PhotoBlog App with WordPress REST API and App Inventor
 
VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発
VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発
VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発
 

Similaire à ASP.NET WEB API 開発体験

[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介david9142
 
Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発Takuro Sasaki
 
最新 ASP.NET Web 開発オーバービュー
最新 ASP.NET Web 開発オーバービュー最新 ASP.NET Web 開発オーバービュー
最新 ASP.NET Web 開発オーバービューAkira Inoue
 
T35 ASP.NET MVCを使ったTDD入門
T35 ASP.NET MVCを使ったTDD入門T35 ASP.NET MVCを使ったTDD入門
T35 ASP.NET MVCを使ったTDD入門normalian
 
A 1-2 One ASP.NET - ASP.NET Web Stack
A 1-2 One ASP.NET - ASP.NET Web StackA 1-2 One ASP.NET - ASP.NET Web Stack
A 1-2 One ASP.NET - ASP.NET Web StackGoAzure
 
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)Masanori Ishigami
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Shotaro Suzuki
 
Visual Studio 2017 事はじめ
Visual Studio 2017 事はじめVisual Studio 2017 事はじめ
Visual Studio 2017 事はじめHideaki Aoyagi
 
Apps for office オンプレミスとクラウド
Apps for office オンプレミスとクラウドApps for office オンプレミスとクラウド
Apps for office オンプレミスとクラウドHirotada Watanabe
 
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるNetラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるdavid9142
 
コーディング不要! Entity Framework 6.1.3 + ASP.NET MVC 5 サンプル アプリケーション構築 手順書
コーディング不要!Entity Framework 6.1.3 + ASP.NET MVC 5 サンプル アプリケーション構築 手順書コーディング不要!Entity Framework 6.1.3 + ASP.NET MVC 5 サンプル アプリケーション構築 手順書
コーディング不要! Entity Framework 6.1.3 + ASP.NET MVC 5 サンプル アプリケーション構築 手順書Masaki Takeda
 
jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発Akira Inoue
 
「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺Yusuke Wada
 

Similaire à ASP.NET WEB API 開発体験 (20)

[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
 
Mvc conf session_1_osada
Mvc conf session_1_osadaMvc conf session_1_osada
Mvc conf session_1_osada
 
Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発
 
ASP.NET MVC 1.0
ASP.NET MVC 1.0ASP.NET MVC 1.0
ASP.NET MVC 1.0
 
20100218
2010021820100218
20100218
 
ASP.NET Core 概要(2017年3月時点)
ASP.NET Core 概要(2017年3月時点)ASP.NET Core 概要(2017年3月時点)
ASP.NET Core 概要(2017年3月時点)
 
最新 ASP.NET Web 開発オーバービュー
最新 ASP.NET Web 開発オーバービュー最新 ASP.NET Web 開発オーバービュー
最新 ASP.NET Web 開発オーバービュー
 
T35 ASP.NET MVCを使ったTDD入門
T35 ASP.NET MVCを使ったTDD入門T35 ASP.NET MVCを使ったTDD入門
T35 ASP.NET MVCを使ったTDD入門
 
A 1-2 One ASP.NET - ASP.NET Web Stack
A 1-2 One ASP.NET - ASP.NET Web StackA 1-2 One ASP.NET - ASP.NET Web Stack
A 1-2 One ASP.NET - ASP.NET Web Stack
 
UnicastWS vol.2
UnicastWS vol.2UnicastWS vol.2
UnicastWS vol.2
 
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
 
Visual Studio 2017 事はじめ
Visual Studio 2017 事はじめVisual Studio 2017 事はじめ
Visual Studio 2017 事はじめ
 
Apps for office オンプレミスとクラウド
Apps for office オンプレミスとクラウドApps for office オンプレミスとクラウド
Apps for office オンプレミスとクラウド
 
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるNetラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
 
コーディング不要! Entity Framework 6.1.3 + ASP.NET MVC 5 サンプル アプリケーション構築 手順書
コーディング不要!Entity Framework 6.1.3 + ASP.NET MVC 5 サンプル アプリケーション構築 手順書コーディング不要!Entity Framework 6.1.3 + ASP.NET MVC 5 サンプル アプリケーション構築 手順書
コーディング不要! Entity Framework 6.1.3 + ASP.NET MVC 5 サンプル アプリケーション構築 手順書
 
jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発
 
Filters
FiltersFilters
Filters
 
Amazon Simple Workflow Service (SWF)
Amazon Simple Workflow Service (SWF)Amazon Simple Workflow Service (SWF)
Amazon Simple Workflow Service (SWF)
 
「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺
 

ASP.NET WEB API 開発体験