OData Open Data Protocol Web Api
▌背景
其中Restful service (Web
Api)可說是串接整個架構的重要腳色~
OData是個人覺得很喜歡的Protocol,也可以應用在Web Api上,
PS.一段時間沒有用了,趁著這次在公司內部和同仁介紹及討論一些.NET開發架構的issue時,複習一下也可以提供參考;
本篇主要說明如何在Web Api上啟用OData功能~
關於OData的詳細介紹請參考
l MSDN:
▌環境
l Visual Studio 2015
Ent.
l Fiddler
▌實作
在Web Api加入以下Nuget套件:
▋調整Http Get Method
在Api Controller的GET方法中啟用OData的方式:
1.
回傳型態必須為 IQueryable
2.
加上一個[Queryable] attribute
範例:
[HttpGet]
[Queryable]
public IQueryable<AdUser>
Get()
{
List<AdUser>
adUsers = new List<AdUser>();
adUsers.Add(new AdUser {
Cn = "JB.Lin", Sn =
"Lin",
GivenName = "JB",
DisplayName = "The Force JB",
Status = AdUserStatusEnum.New.ToString()
});
adUsers.Add(new AdUser {
Cn = "Lily.Yang", Sn =
"Yang",
GivenName = "Lily",
DisplayName = "The Force Lily",
Status = AdUserStatusEnum.Updated.ToString()
});
adUsers.Add(new AdUser {
Cn = "Leia.Lin", Sn =
"Lin",
GivenName = "Leia",
DisplayName = "Leia Skywalker",
Status = AdUserStatusEnum.Updated.ToString()
});
return
adUsers.AsQueryable();
}
|
That’s
all!
▋How to use OData in
your request
在Request的URL上加上對應之參數即可!
例如排序:
http://localhost:9999/api/adcenter/Get?$orderby=DisplayName
以上面加入排序條件的URL為例,下圖一為不下任何條件,圖二為加入條件的結果。
(圖一) http://localhost:9999/api/adcenter/Get
(圖二) http://localhost:9999/api/adcenter/Get?$orderby=DisplayName
可以看到查詢的結果以”DisplayName”做排序了~
▌Reference
沒有留言:
張貼留言