restful & odata using asp.net web api

27
REST & OData using ASP.NET Web API 劉劉劉

Upload: -

Post on 02-Dec-2014

950 views

Category:

Technology


3 download

DESCRIPTION

Rest

TRANSCRIPT

Page 1: Restful & odata using asp.net web api

REST & ODatausing ASP.NET Web API

劉昱劭

Page 2: Restful & odata using asp.net web api

REST / RESTful

Page 3: Restful & odata using asp.net web api
Page 4: Restful & odata using asp.net web api

RESTO Roy Fielding 2000年O Representational State Transfer

O 資源 (分布在網路上的東西 )O 表示方式 (HTML、 XML、 JSON、 Image…)O 狀態轉換 (Client端的操作行為 )

O Architectural Styel(架構風格 )

O HTTP 實作 (RESTful Web Service)

Page 5: Restful & odata using asp.net web api

REST & HTTPO資源的位置

O 由 URI來表示O資源的操作方式

O 獲取、創建、修改和刪除資源O GET 、 POST 、 PUT 、 DELETE

O資源的表現形式O XML、 JSON…O Accept: application/xml(HTTP Header)

Page 6: Restful & odata using asp.net web api

URI表示O服務O資源位置O參數http://localhost:8888/Contact?Name=CHTO以名詞為種,用“ /”表示階層

O http://crm2.hisales.hinet.net/webapi/SMSActivity/{activityId}  

O http://crm2.hisales.hinet.net/webapi/SMSActivity/{activityId}/SMSLog  

Page 7: Restful & odata using asp.net web api

資源與HTTP方法 (1/2)HTTP方法 資源:

/api/values資源:/api/values/1

GET 取得所有資源 取得指定資源POST 新增一組資源PUT 更新所有資源 更新指定資源DELETE 刪除所有資源 刪除指定資源GET http://crm2.hisales.hinet.net/webapi/contact       =>代表存取所有聯絡人GET http://crm2.hisales.hinet.net/webapi/contact/{id}   =>代表存取指定 id聯絡人POST http://crm2.hisales.hinet.net/webapi/contact      =>代表新增聯絡人

Page 8: Restful & odata using asp.net web api

資源與HTTP方法 (2/2)

PUThttp://crm2.hisales.hinet.net/webapi/contact/{id}    =>代表修改指定 id聯絡人DELETEhttp://crm2.hisales.hinet.net/webapi/contact/{id}    =>代表刪除指定 id聯絡人GET http://crm2.hisales.hinet.net/webapi/contact/{id}/SMSActivity    =>代表存取與指定 id聯絡人有關的所有簡訊活動GET http://crm2.hisales.hinet.net/webapi/SMSActivity/{activityId}     =>代表存取指定簡訊活動GEThttp://crm2.hisales.hinet.net/webapi/SMSActivity/{activityId}/SMSLog    =>代表存取指定簡訊活動的發送記錄POSThttp://crm2.hisales.hinet.net/webapi/MarketingList/{mid}/contact      =>代表新增聯絡人到指定的行銷名單中

Page 9: Restful & odata using asp.net web api

OData

Page 10: Restful & odata using asp.net web api

Open Data Protocol(OData)

O Uniform Data AccessO ODBCO OLEDBO JDBCO 沒有存取Web 資料的統一方

O Microsoft 2009年 2月O 1.0、 2.0、 3.0、 4.0(Now)

Page 11: Restful & odata using asp.net web api

Open Data Protocol(OData)

O 基於 RESTful與Http所制定的協定O 統一的資料表示方式

O Atom, JSON formatsO 統一的操作

O GET(select), POST(insert), PUT(update), DELETE(delete)

O 統一的URL conventionsO Navigation, filtering, sorting, paging, etc.

O http://www.odata.org/O http://odata.ntpc.edu.tw/(新北市教育局 )

Page 12: Restful & odata using asp.net web api

URL conventions(1/2)基本選項 說明$top=n 前 N筆$skip=n 略過 N筆$filter=<expression> 依條件過濾$orderby=<expression> 排序

以 QueryString方式執行 $skip + $top = paging

Page 13: Restful & odata using asp.net web api

URL conventions(2/2)基本選項 說明eq 等於gt 大於lt 小於ne 不等於 $filter=UnitPrice gt 100&$orderby=ProductName

Page 14: Restful & odata using asp.net web api

Operator by Odata 4.0O AddO DivO SubO ModO Mul

O eqO neO geO gtO lt

O leO andO orO not

http://www.odata.org/documentation/odata-v3-documentation/url-conventions/

Page 15: Restful & odata using asp.net web api

QueryOptions by Odata 4.0

O $skipO $topO $orderbyO $expand

O $selectO $inlinecount("allp

ages" / "none")O $format

http://msdn.microsoft.com/en-us/library/dd541320.aspx

Page 16: Restful & odata using asp.net web api

誰在用Odata(1/2)O Microsoft

O SharePointO SQL AzureO SQL Server

O IBMO IBM WebSphere

Page 17: Restful & odata using asp.net web api

誰在用Odata(2/2)O Live Odata Service

O Facebook InsightsO NetflixO Open Government InitiativeO Open Science Data initiativeO Etc..

O We can provideO WCF Data ServicesO OData4JO ASP.NET Web API

Page 18: Restful & odata using asp.net web api
Page 19: Restful & odata using asp.net web api

ASP.NET Web API

Page 20: Restful & odata using asp.net web api

ASP.NET Web APIO 1.0

O Visual Studio 2012O ASP.NET MVC 4.0

O 2.0O Visual Studio 2013(2013/10/18)O ASP.NET MVC 5.0O NuGet獨立下載O Attribute routing、 CROS、OWIN

Page 21: Restful & odata using asp.net web api
Page 22: Restful & odata using asp.net web api
Page 23: Restful & odata using asp.net web api
Page 24: Restful & odata using asp.net web api
Page 25: Restful & odata using asp.net web api
Page 26: Restful & odata using asp.net web api

DEMO

Page 27: Restful & odata using asp.net web api

Q & A