最新 Web API 開発 ~ ASP.NET Web API 2...

Preview:

Citation preview

Room E

目的

最新の Web API 開発

ゴールASP.NET Web API 2

Microsoft Azure

認証

アジェンダ 背景

ASP.NET Web API 2

ASP.NET Web API 認証の仕組み

Microsoft Azure の活用

Web サイト

モバイルサービス

API Management

Cloud First

位置付けHTTP サービス

.NET Framework のサービスフレームワーク

- HTTP, REST, OData

強み

REST アーキテクチャスタイル例:

GET ~/api/books/3

POST ~/api/books

GET ~/api/authorInfo

XML, JSON, etc…

OData REST を利用したデータアクセス用のプロトコル

データソースのメタデータ、型、リレーション

クエリ $filter, $sort, etc…

XML, JSON 双方に対応

ApiController クラス ODataController クラス

REST でも有効

REST と OData

ODataWeb

APIREST

ASP.NET

Web API

ASP.NET

Web API 2ASP.NET

Web API 2.2

2012/8 2013/10 2014/1 next

VS 2012 VS 2013.NET 4.5 以上

.NET 4以上

ASP.NET Web API 2.*

属性ベースのルーティング

HTTP Client の PCL 対応

OWIN 対応

CORS, OAuth 2.0

Web API ヘルプページ生成の強化

フィルター属性の非同期対応

OData 4.0 の対応(※未リリース)

機能 OData の属性ベースのルーティング

クエリ($filter, $top)をプロパティ毎に制限

Etag のサポート、楽観的平行性制御

Enum のサポート

$format が有効に

etc..

OData 4.0 の対応(※未リリース)

ポイント

WCF は OData 4.0 対応に投資しない

3.0 と名前空間、アセンブリ、実装名が違うMicrosoft.AspNet.WebApi.OData (NuGet ID)→ Microsoft.AspNet.OData

System.Web.Http.OData (アセンブリ名)→ System.Web.OData

ASP.NET Web API認証の仕組み

IIS(HTTP モジュール) セルフホスト

Katana Middleware

メッセージハンドラー

属性 IAuthenticationFilter

属性 [Authorize]

ホスティング

Katanaコンポーネント

ASP.NETWeb APIフレームワーク

OAuth 2.0 Bearer Token

[Authorize]string Get()

401 Unauthorized

キーを持たないRequest

ヘッダーWWW-Authenticate: Bearer

OAuth 2.0 Bearer Token

[Authorize]string Get()

200 OK

ヘッダーAuthorization : Bearer [key]

OAuth 2.0 Bearer Token

OAuthOptions = new OAuthAuthorizationServerOptions{

TokenEndpointPath = new PathString("/Token"),AuthorizeEndpointPath =

new PathString("/api/Account/ExternalLogin"),

AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),AllowInsecureHttp = true

};

app.UseOAuthBearerTokens(OAuthOptions);

ライブラリ

ASP.NET Identity

Microsoft Azure の活用

Web サイト ASP.NET アプリケーションとして発行

Visual Studio との統合

発行

リモートデバッグ

モバイルサービス

データ

認証

Push通知

SQL, MongoDB,

Blob Storage etc...

Facebook, Twitter,

Microsoft, Google

etc…

Windows, Apple, Google, 通知ハブ

←RESTAPI←

Node.js

ASP.NET

Web API

各種デバイス用のSDK

Web.config

WebApiConfig.cs

Scheduled Job

API Controller, Table Controller

ASP.NET

ASP.NETWeb APIフレームワーク

モバイルサービス 構造

Global.asaxモバイルサービスランタイム

Bootstrapper

Web サイト モバイルサービス

IIS IIS

ASP.NET プロジェクト

ASP.NET プロジェクト

モバイルサービスランタイム

注意点 Web サイトとはホスティングの仕組みが違うこと

デプロイ後、Global.asax は反映されないこと

デプロイ時、Web.config の値が設定されること

ローカルデバッグ時は、Global.asax や Web.config がそのまま使用できること。

API Controller, Table ControllerASP.NETWeb APIフレームワーク

モバイルサービス構造

データSQL, MongoDB,

Blob Storage etc...

ASP.NETWeb API

アプリケーション

APIAPI 提供者

API 利用者

API Management

開発者用のポータル

プロキシ

公開するポータル

API

API を利用する開発者

アプリケーション

管理者

開発者用のポータル

プロキシ

公開するポータル

API Management

ASP.NETWeb API

アプリケーション

APIAPI

API 提供者

API 利用者

ASP.NET Web API 2

モバイル開発向けの機能強化

.NET 4.5 以上

OData 4.0

ASP.NET Web API 認証

Microsoft Azure の活用

.NET Technologies Primer

.NET 開発テクノロジ入門 2014 年版

~ Visual Studio 2013 対応版 ~

http://nkbp.jp/1sT87tP

著者

小高 太郎、酒井 達明、芝村 達郎

中原 幹雄、山田 祥寛、和田 健司

監修

日本マイクロソフト株式会社 エバンジェリストチーム

!! 日経 BP 社様ブースにて 10% 割引で先行販売中 !!

アンケートにご協力ください。

●アンケートの「Breakout Session」記入欄に、上記の【Session ID】を

ご記入ください。

●アンケートはお帰りの際に、受付でご提出ください。

マイクロソフトスペシャルグッズと引換えさせていただきます。

Ask the Speaker のご案内 Ask the Speaker

展示会場MAP

●本セッションの詳細は、展示会場内

『Ask the Speaker』コーナー

Room E カウンタにてご説明させて

いただきます。是非、お立ち寄りください。

Recommended