Slide 1

Slide 1 text

ASP.NetでAPIを作ってみた 2014.01/22 C#福岡 第3回勉強会

Slide 2

Slide 2 text

About me

Slide 3

Slide 3 text

らこ Suguru Inatomi Twitter:@laco0416 学生 C#とかJavaとかPythonとか http://lacolaco.net

Slide 4

Slide 4 text

What ‘s ASP.Net Web API?

Slide 5

Slide 5 text

One ASP.NET (Scott Hanselman氏のブログより)

Slide 6

Slide 6 text

Microsoft ASP.NET Web API 現行バージョン: 4.0.30506 マルチプラットフォームのHTTPサービスフレームワーク 2012年8月に誕生したばかりの新しい技術 なんと20日にWeb API 2.1リリース http://blogs.msdn.com/b/webdev/archive/2014/01/20/announcing-the- release-of-asp-net-mvc-5-1-asp-net-web-api-2-1-and-asp-net-web- pages-3-1.aspx

Slide 7

Slide 7 text

ASP.NET Web API (@ITより)

Slide 8

Slide 8 text

Let’s make it!

Slide 9

Slide 9 text

Step-1 Make Project

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

Step-2 Make Controller

Slide 13

Slide 13 text

ModelsController Controller class -> ValuesController API endpoint -> http://lacolaco.net/api/values コントローラ名からURLルーティングを 自動でやってくれる

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

これだけですでに実行可能 RESTfulなインタフェースが すでに定義済み いたれりつくせり

Slide 17

Slide 17 text

メソッド名とHTTPのメソッド が対応しているので 名前の変更はNG 使わないAPIを消すのはOK

Slide 18

Slide 18 text

Step-3 Receive params

Slide 19

Slide 19 text

引数無しGet 主にデータストアから 全レコードを返す時など。

Slide 20

Slide 20 text

引数の規則 ・プリミティブ型はUriから ・それ以外はBodyから ・[FromBody]をつけると プリミティブでもBodyから読む ・[FromUri]をつけると オブジェクトでもUriから読む

Slide 21

Slide 21 text

Uriパラメータ受け取り ・仮引数名がそのままkeyになる api/samples?id=1 ・引数がidだけの時は api/samples/1と api/samples?id=1 は同じ

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

Bodyパラメータ受け取り ・Bodyから受け取れるのは 1つの引数のみ ・モデルクラスを用意して jsonのオブジェクトを受け取る ことができる

Slide 24

Slide 24 text

Body { id : 0 , value : “CSharp”} ↓ C# new Sample() { id = 0, value = “CSharp”};

Slide 25

Slide 25 text

Step-4 Run

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

API仕様のページまで 作ってくれる

Slide 28

Slide 28 text

My product IT Event API

Slide 29

Slide 29 text

直近1ヶ月のIT系勉強会を返すAPI 文字列で検索も可能 http://api.lacolaco.net/events?query=福岡

Slide 30

Slide 30 text

ここで終わりだったんですが

Slide 31

Slide 31 text

Web API 2.1リリース ASP.Net MVC 5.1とWeb API 2.1が同時に正式リリース。 VS 2013 VS 2013 Update 1へのアプデが必要 VS 2012 ASP.NET and Web Tools 2013.1 for Visual Studio 2012の インストールが必要

Slide 32

Slide 32 text

Web API 2 : VS2013でのみ利用可能だった ↓ Web API 2.1 : VS2012でも利用可能に。 Install-Package Microsoft.AspNet.WebApi -Version 5.1.0 ・ Global Error Handling (エラーハンドリングを一箇所にまとめられるようになった) ・ Attribute Routing Improvements (属性によるルーティングの改善?) ・ Help Page Improvements (APIヘルプページの改善) ・ IgnoreRoute Support ・ BSON Media-Type Formatter (BSONオブジェクトに対応) ・ Better Support for Async Filters ・ Query Parsing for the Client Formatting Library (System.Net.Http.Formattingの拡張) まだ詳細を把握できていないので詳しくは原文を参照してください http://www.asp.net/web-api/overview/releases/whats-new-in-aspnet-web-api-21

Slide 33

Slide 33 text

Thank you for listening