OData

開放數據協議 (OData) 是一種用於 web 的數據訪問協議
OData 提供統一的方式來查詢和操做數據集經過 CRUD 操做 (建立、 讀取、 更新和刪除)
如下以asp .net爲例做講解html

Server:向已存在的asp .net 項目中添加web api

引用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#

OData定義web api

分Server和Client兩部分api

Server

配置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

Client

新建控制檯(任意客戶端)
安裝工具(須要重啓VS)
1
新建服務代理
2
3
配置服務代理:打開.tt文件,如圖所示,有一個MetadataDocumentUri參數,配置爲Server的網址,保存以後,會自動生成服務代理(更新也是這個步驟)
4
調用服務工具

string serviceUri = "http://localhost:5003/";
var container = new Default.Container(new Uri(serviceUri));
//調用自定義方法
var rate = container.GetSalesTaxRate(1);

示例代碼

示例代碼1-Server
示例代碼2-Clientui

參考資料

建立 OData v4 終結點使用 ASP.NET Web API
建立 OData v4 客戶端應用 (C#)
OData – the best way to REST–實例講解ASP.NET WebAPI OData (V4) Service & Client