簡述
OData,即Open Data Protocol,是由微軟在2007年推出的一款開放協議,旨在透過簡單、標準的方式建立和使用查詢式及互動式RESTful API。
類庫
在.NET Core中想要使用OData功能的話需要新增Microsoft.AspNetCore.OData
包。
dotnet add package Microsoft.AspNetCore.OData
準備模型類
建立Edm模型
OData使用EDM,即Entity Data Model來描述資料的結構。在Startup檔案中新增建立方法。
註冊OData服務
在Startup檔案的ConfigureServices方法裡註冊OData服務。
這裡要註意的是在.NET Core 2.2裡,預設已經有終結點,所以要使用OData的終結點的話需要將預設選項禁用掉。
註冊OData終結點
同樣在Startup檔案裡,在其Configure方法內將原來的註冊路由內容改為註冊OData的終結點。
顯示元資料
執行程式後訪問https://localhost:5001/odata/$metadata
地址,可以看到所有可用模型的元資料。
建立Controller
本文實體中不考慮資料庫的操作,故而使用hard code方式構建必要的模型物件。
EnableQuery特性在需要高階查詢的場景時必須新增。
查詢
加入Controller之後,訪問https://localhost:5001/odata/Books
地址,可得到所有Book資料。
訪問https://localhost:5001/odata/Books(1)
地址,可得到key值為1的Book資料。
高階查詢
如果想要使用OData查詢的高階功能,可以在註冊終結點時額外加上相應的配置。
如果想要按特定條件過濾資料內容的話也很容易:https://localhost:5001/odata/Books?$filter=Price%20le%2060
總結
不難看出,OData的真正魅力在於其對那些高階查詢功能的支援,所以在建立RESTful API時,不妨考慮使用OData,這樣應該能減少許多不必要的程式碼工作。
原文地址:https://www.cnblogs.com/kenwoo/p/10360260.html