OData

本文深入讲解了开放数据协议(OData)的基本概念,包括其在WebAPI中的应用方式,以及如何在ASP.NET项目中实现OData服务端和客户端的搭建过程。涵盖了从添加WebAPI到配置ODataModelBuilder,再到调用自定义方法的完整流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开放数据协议 (OData) 是一种用于 web 的数据访问协议
OData 提供统一的方式来查询和操作数据集通过 CRUD 操作 (创建、 读取、 更新和删除)
以下以asp .net为例作讲解

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

引用

Microsoft.AspNet.WebApi
Microsoft.AspNet.WebApi.Client
Microsoft.AspNet.WebApi.Cors
Microsoft.AspNet.WebApi.WebHost

在App_Start中添加类文件WebApiConfig.cs

public class WebApiConfig
{
    public static void Register(HttpConfiguration configuration)
    {
        configuration.Routes.MapHttpRoute("API Default", "api/{controller}/{id}",
            new { id = RouteParameter.Optional });
    }
}

修改Global.asax.cs文件,注入WebApiConfig

//在注册默认路由之前 before registering the default Web Application route as that would otherwise take precedence.
WebApiConfig.Register(GlobalConfiguration.Configuration);
RouteConfig.RegisterRoutes(RouteTable.Routes);
参考资料

https://stackoverflow.com/questions/11990036/how-to-add-web-api-to-an-existing-asp-net-mvc-4-web-application-project

OData定义web api

分Server和Client两部分

Server

配置

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,保证能够访问

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);
示例代码

https://github.com/zLulus/NotePractice/tree/dev3/Website/DotNetFramework/NotePractice
https://github.com/zLulus/NotePractice/tree/dev3/Website/DotNetFramework/OData.Client

参考资料

https://docs.microsoft.com/zh-cn/aspnet/web-api/overview/odata-support-in-aspnet-web-api/odata-v4/create-an-odata-v4-endpoint
https://docs.microsoft.com/zh-cn/aspnet/web-api/overview/odata-support-in-aspnet-web-api/odata-v4/create-an-odata-v4-client-app
http://www.cnblogs.com/bluedoctor/p/4384659.html

转载于:https://www.cnblogs.com/Lulus/p/9726388.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值