Upload
-
View
950
Download
3
Embed Size (px)
DESCRIPTION
Rest
Citation preview
REST & ODatausing ASP.NET Web API
劉昱劭
REST / RESTful
RESTO Roy Fielding 2000年O Representational State Transfer
O 資源 (分布在網路上的東西 )O 表示方式 (HTML、 XML、 JSON、 Image…)O 狀態轉換 (Client端的操作行為 )
O Architectural Styel(架構風格 )
O HTTP 實作 (RESTful Web Service)
REST & HTTPO資源的位置
O 由 URI來表示O資源的操作方式
O 獲取、創建、修改和刪除資源O GET 、 POST 、 PUT 、 DELETE
O資源的表現形式O XML、 JSON…O Accept: application/xml(HTTP Header)
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
資源與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 =>代表新增聯絡人
資源與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 =>代表新增聯絡人到指定的行銷名單中
OData
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)
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/(新北市教育局 )
URL conventions(1/2)基本選項 說明$top=n 前 N筆$skip=n 略過 N筆$filter=<expression> 依條件過濾$orderby=<expression> 排序
以 QueryString方式執行 $skip + $top = paging
URL conventions(2/2)基本選項 說明eq 等於gt 大於lt 小於ne 不等於 $filter=UnitPrice gt 100&$orderby=ProductName
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/
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
誰在用Odata(1/2)O Microsoft
O SharePointO SQL AzureO SQL Server
O IBMO IBM WebSphere
誰在用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
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
DEMO
Q & A