SlideShare a Scribd company logo
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枚のポスターに。
ありがとうございました!

More Related Content

PPTX
はじめてのASP.NET MVC5
PDF
Web開発の最新トレンド ~1から知るASP.NET~
PDF
50分で掴み取る ASP.NET Web API パターン&テクニック
PDF
はじめての ASP.NET MVC
PDF
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
PPTX
ASP.NET習得の最短経路を考察する
PPTX
2016/12/17 ASP.NET フロントエンドタスク入門
PDF
OWIN って何?
はじめてのASP.NET MVC5
Web開発の最新トレンド ~1から知るASP.NET~
50分で掴み取る ASP.NET Web API パターン&テクニック
はじめての ASP.NET MVC
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET習得の最短経路を考察する
2016/12/17 ASP.NET フロントエンドタスク入門
OWIN って何?

What's hot (20)

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

Similar to ASP.NET WEB API 開発体験 (20)

PDF
Asp.net web apiのすゝめ
PPT
20090212
PDF
Mvc conf session_1_osada
PPTX
20120609
PDF
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
PPT
T35 ASP.NET MVCを使ったTDD入門
PDF
Web API のすすめ
PPTX
BYE-BYE!! ASP.NET MVC,Hello! ASP.NET SPA~ASP.NET WEB API & ASP.NET CORE WITH ...
PPT
20080524
PDF
A 1-2 One ASP.NET - ASP.NET Web Stack
PDF
最新 ASP.NET Web 開発オーバービュー
PDF
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
PPTX
20100313
PDF
WordPressAPI
PPT
20060419
PDF
ASP.NET Core 概要(2017年3月時点)
PPTX
20080630
PPT
やってみよう!ASP.NET MVC #2
PPTX
20120425
PDF
ASP.NET "NOW" and "NEXT"
Asp.net web apiのすゝめ
20090212
Mvc conf session_1_osada
20120609
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
T35 ASP.NET MVCを使ったTDD入門
Web API のすすめ
BYE-BYE!! ASP.NET MVC,Hello! ASP.NET SPA~ASP.NET WEB API & ASP.NET CORE WITH ...
20080524
A 1-2 One ASP.NET - ASP.NET Web Stack
最新 ASP.NET Web 開発オーバービュー
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
20100313
WordPressAPI
20060419
ASP.NET Core 概要(2017年3月時点)
20080630
やってみよう!ASP.NET MVC #2
20120425
ASP.NET "NOW" and "NEXT"
Ad

ASP.NET WEB API 開発体験