開放數據協議 (OData) 是一種用於 web 的數據訪問協議
OData 提供統一的方式來查詢和操做數據集經過 CRUD 操做 (建立、 讀取、 更新和刪除)
如下以asp .net爲例做講解html
引用git
Microsoft.AspNet.WebApi Microsoft.AspNet.WebApi.Client Microsoft.AspNet.WebApi.Cors Microsoft.AspNet.WebApi.WebHost
在App_Start中添加類文件WebApiConfig.csgithub
public class WebApiConfig { public static void Register(HttpConfiguration configuration) { configuration.Routes.MapHttpRoute("API Default", "api/{controller}/{id}", new { id = RouteParameter.Optional }); } }
修改Global.asax.cs文件,注入WebApiConfigweb
//在註冊默認路由以前 before registering the default Web Application route as that would otherwise take precedence. WebApiConfig.Register(GlobalConfiguration.Configuration); RouteConfig.RegisterRoutes(RouteTable.Routes);
How to add Web API to an existing ASP.NET MVC 4 Web Application project?c#
分Server和Client兩部分api
配置mvc
ODataModelBuilder builder = new ODataConventionModelBuilder(); //多個實體,不能重名 builder.EntitySet<Product>("Products"); builder.EntitySet<Supplier>("Suppliers"); //定義自定義方法 builder.Function("GetSalesTaxRate") .Returns<double>() .Parameter<int>("PostalCode"); configuration.MapODataServiceRoute( routeName: "ODataRoute", routePrefix: null, model: builder.GetEdmModel());
實現相關接口
完成以後,運行or發佈Server,保證可以訪問app
新建控制檯(任意客戶端)
安裝工具(須要重啓VS)
新建服務代理
配置服務代理:打開.tt文件,如圖所示,有一個MetadataDocumentUri參數,配置爲Server的網址,保存以後,會自動生成服務代理(更新也是這個步驟)
調用服務工具
string serviceUri = "http://localhost:5003/"; var container = new Default.Container(new Uri(serviceUri)); //調用自定義方法 var rate = container.GetSalesTaxRate(1);
建立 OData v4 終結點使用 ASP.NET Web API
建立 OData v4 客戶端應用 (C#)
OData – the best way to REST–實例講解ASP.NET WebAPI OData (V4) Service & Client