国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Web Api系列教程第2季(OData篇)(一)——OData簡介和一個(gè)小應(yīng)用

2019-11-17 01:30:42
字體:
供稿:網(wǎng)友

Web Api系列教程第2季(OData篇)(一)——OData簡介和一個(gè)小應(yīng)用

第一季的鏈接以及系列導(dǎo)航:http://m.survivalescaperooms.com/fzrain/p/3490137.html

在這里,首先要感謝Taiseer Joudeh不斷的為我們帶來最新的技術(shù)分享,樓主對(duì)web api這種技術(shù)可謂是非常的喜歡,同時(shí)也得到很多園友的支持,所以繼續(xù)是必然的。經(jīng)過上一階段的學(xué)習(xí),我們對(duì)于web api應(yīng)該已經(jīng)不是很陌生了,從本篇開始將開始介紹OData。我也是剛開始學(xué),因此把學(xué)習(xí)過程記錄下來并分享給大家,期待一起交流進(jìn)步。

在本次系列中,我們將沿用第一季的項(xiàng)目背景來構(gòu)建一個(gè)OData服務(wù),本文將用一個(gè)簡單的例子幫大家來認(rèn)識(shí)OData,在介紹例子之前我們先介紹一下OData的定義和約定。

OData簡介

Open Data PRotocol (開放數(shù)據(jù)協(xié)議,OData)是用來查詢和更新數(shù)據(jù)的一種Web協(xié)議,其提供了把存在于應(yīng)用程序中的數(shù)據(jù)暴露出來的方式。OData運(yùn)用且構(gòu)建于很多 Web技術(shù)之上,比如HTTP、Atom Publishing Protocol(AtomPub)和JSON,提供了從各種應(yīng)用程序、服務(wù)和存儲(chǔ)庫中訪問信息的能力。OData被用來從各種數(shù)據(jù)源中暴露和訪問信息, 這些數(shù)據(jù)源包括但不限于:關(guān)系數(shù)據(jù)庫、文件系統(tǒng)、內(nèi)容管理系統(tǒng)和傳統(tǒng)Web站點(diǎn)。

我們知道,構(gòu)建符合REST原則的服務(wù)應(yīng)該具備一下特點(diǎn):

1.每一個(gè)資源都由一個(gè)唯一的URI來標(biāo)識(shí)。

2.通過HTTP方法(GET, POST, PUT, and DELETE)來實(shí)現(xiàn)對(duì)資源的CRUD。

3.能根據(jù)客戶端指定的格式來返回?cái)?shù)據(jù):xml,JSON等。

Odata1

小應(yīng)用:查詢現(xiàn)有的OData服務(wù)

在我們開始創(chuàng)建OData服務(wù)之前,為了讓大家對(duì)OData有一個(gè)更深入的理解,在這里我們將查詢一個(gè)已經(jīng)存在的OData服務(wù)(使用的是Northwind數(shù)據(jù)庫),對(duì)應(yīng)的基地址是:http://services.odata.org/Northwind/Northwind.svc。你可以使用任何REST客戶端(例如fiddler,PostMan)。當(dāng)然如果只是做查詢操作,你也可以直接使用瀏覽器。

下表列舉了一些常用的Odata操作:

操作

URL

說明

             $filter http://services.odata.org/Northwind/Northwind.svc/Products?$filter=ProductName eq 'Tofu' 根據(jù)表達(dá)式的狀態(tài)返回結(jié)果(返回ProductName 等于Tofu的Products)
            $orderby http://services.odata.org/Northwind/Northwind.svc/Products?$orderby=ProductName 根據(jù)結(jié)果排序(根據(jù)ProductName列排序)
            $skip http://services.odata.org/Northwind/Northwind.svc/Products?$skip=10 越過結(jié)果中的n條數(shù)據(jù),常用于分頁
            $top http://services.odata.org/Northwind/Northwind.svc/Products?$top=10 返回結(jié)果中的前n條記錄,常用于分頁
           $select http://services.odata.org/Northwind/Northwind.svc/Products?$filter=ProductName eq 'Tofu'&$select=ProductName,UnitPrice 選擇需要返回的屬性
           $expand http://services.odata.org/Northwind/Northwind.svc/Products?$expand=Supplier 返回Products中包含的導(dǎo)航屬性(關(guān)聯(lián)屬性)Supplier
          $inlinecount http://services.odata.org/Northwind/Northwind.svc/Products?$inlinecount=allpages 向服務(wù)器獲取符合條件的資源總數(shù)(分頁的total值)

通過上面表格的內(nèi)容,我們還可以通過組合查詢條件來實(shí)現(xiàn)復(fù)雜的查詢(例如:我們想實(shí)現(xiàn)服務(wù)器端的分頁,那么我們就可以使用如下的URI:http://services.odata.org/Northwind/Northwind.svc/Products?$top=10&$skip=0&$orderby=ProductName&$inlinecount=allpages)。在上面的URI中,$skip代表跳過的數(shù)據(jù),通常指pageSize*pageIndex,同時(shí)$inlinecount返回一個(gè)int值代表記錄總數(shù)。

OData服務(wù)支持內(nèi)容的選擇,也就是說客戶端可以通過設(shè)置請(qǐng)求頭Accept header來定制響應(yīng)數(shù)據(jù)的格式,每種格式都有各自的優(yōu)缺點(diǎn),下表就說明了彼此的不同之處:

 

XML

JSON(詳細(xì)版)

JSON(輕量版)

            OData版本 版本1,2,3 版本1,2,3 版本3
          元數(shù)據(jù)及超鏈接 包含數(shù)據(jù)和元數(shù)據(jù) 包含數(shù)據(jù)和元數(shù)據(jù) 僅包含數(shù)據(jù)
          數(shù)據(jù)大小 28.67 KBs 14.34 KBs, 小了近50% 4.25 KBs, 小了近75%
對(duì)于移動(dòng)客戶端消費(fèi)是否簡單
       Accept Header application/atom+xml application/json;odata=verbose application/json

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 西乌珠穆沁旗| 常熟市| 南阳市| 田东县| 台湾省| 庆城县| 莲花县| 呼玛县| 甘肃省| 信丰县| 监利县| 綦江县| 若尔盖县| 义马市| 邵阳县| 屯昌县| 洛宁县| 佛冈县| 蕲春县| 时尚| 息烽县| 长泰县| 赤城县| 靖远县| 枣庄市| 定州市| 渝北区| 河津市| 马山县| 大邑县| 滦南县| 万载县| 泾川县| 外汇| 惠水县| 通江县| 颍上县| 定兴县| 建阳市| 津市市| 大新县|