OData的初步認識及使用


OData是什么

  Open Data Protocol(OData),程序數據庫格式標准化的開放數據協議,以簡單和標准的方法,建造或消除可查詢和可操作的RESTful API,是用來查詢和更新數據的一種Web協議,其提供了把存在於應用程序中的數據暴露出來的方式。Apache Olingo 是個 Java 庫,用來實現OData。

OData產生契機

  已知REST只是一種設計Web服務的思想,不是一種標准化的協議,因此會導致各家公布的RESTful API在統一通用方面的欠缺。OData就是為了彌補這種欠缺而被提出來的標准協議。

實施OData

如果需要實施OData服務,需要完成以下四個部分:

  • OData模型

    定義數據結構,一般發生在后端系統。

  • OData協議

    支持CRUDQ(創建,讀取,修改,刪除,查詢)功能,數據的傳輸可以使用XML或者JSON。

  • OData客戶端庫

    保證了客戶端能夠使用庫函數方便的訪問OData服務。注意,客戶端庫並不是必須的,但是盡量有,這樣可以節省大量的編碼工作。

  • OData服務

    實現了OData協議,可以最終被客戶端訪問的服務。

  • OData服務至少向外暴露一下三個接口:

     1: {host}/:  獲取實體列表

     2: {host}/$metadata: 獲取實體元數據

     3: {host}/{entityId}: 獲取對應實體的數據  (標准查詢參數:  ?$select=id,name&$filter=id eq 1 and age gt 20)

OData服務的結構

  • 服務文檔(Service Document)
  • 服務元結構文檔(Service Metadata Document)

以上兩種文檔包含了:

  • 實體(Entity)
  • 實體類型(Entity Type)
  • 實體集合(Entity Set)
  • 屬性(Property)
  • 導航屬性(Navigation Property)
  • 關聯(Association)

OData的使用

一、函數的使用

  • contains(包含)$filter=contains(Name,'momo')
  • not contains(不包含)
  • startswith(以xx開頭)
  • endswith(以xx結尾)
  • length(字符長度等於x)
  • indexof(字符長度等於x索引為n開始包含xx字符)
  • replace(替換)
  • substring(從第n個字符開始)
  • tolower(轉換為小寫)
  • toupper(轉換為大寫)
  • trim(去空格后)

二、$filter運算符

eq(等於);ne(不等於);gt(大於);ge(大於等於);lt(小於);le(小於等於);and(且);or(或);()(分組)

三、$orderby排序  

http://localhost:5000/userInfo?$orderby=name desc,EventName asc

四、$top,skip,inlinecount客戶端換頁

http://localhost:5000/userInfo?$top=5&$skip=1&$inlinecount=allpages

五、$count數據量

六、$expand嵌入內容

七、$format格式化

八、$select查詢字段的列表(和sql中select后面的表達式一樣)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM