写点什么

OData v3 与 WCF Data Services 5.x 简介

  • 2013-01-13
  • 本文字数:756 字

    阅读完需:约 2 分钟

如果使用.NET 构建新的 Web Services,那么 OData 就应该处于很重要的位置,特别是在需要支持未知的第三方应用时更是如此。该技术本身支持 SOAP 与 REST 风格的消息,对于后者又提供了 ATOM(XML)与 JSON 表示。这意味着使用者可以请求最适合自身的格式。

一个不错的起始点是 Mohamad Halabi 的文章 Understanding OData v3 and WCF Data Services 5.x 。这篇文章超越了传统的快速指南,重点关注于通信协议本身。

关于 WCF Data Services(微软的 OData 实现)的一个常见误解是它被绑定到了其 ORM Entity Framework 上。Mohamad 的文章中则介绍了公开一个非 EF 数据源的做法。对于静态数据来说,这就像是通过调用 List.AsQuerable 公开一套 IQueryable 属性一样简单。微软称其为 Reflection Provider

对于更加复杂的场景,你需要参考 MSDN 上的 Custom Data Service Providers 页面。它包含了你需要实现的各种接口的链接及一篇同名文章。但遗憾的是,很多接口的文档都不太完善。

在创建 OData 服务时,你需要知道一些兼容性问题。幸好,Mohamad 还介绍了 OData V2 与 OData V3 之间的差别。你主要应该关注如何注册 JSONMessageInspector 以及 JSON 与 JSON Light 之间的差别(后者去掉了很多 OData 元数据)。

WCF Data Services 主要用于提供 CRUD 式的服务,即创建、读取、更新与删除操作。你还可以公开 RPC 风格的服务,比如说 ProcessInvoice 方法。这是通过 WebGet 与 WebInvoke 属性实现的。但遗憾的是,这要比一般的 WCF 服务多了很多限制,比如说“每个参数都必须是原生类型”。 Service Operations 页面对其进行了详尽的介绍。

修改与查询拦截器可用于重写CRUD 式的请求。使用附加的验证与安全检查来阻止操作,通过错误消息告知你希望执行的其他操作。

查看英文原文: Getting Started with OData v3 and WCF Data Services 5.x

2013-01-13 12:301914
用户头像

发布了 88 篇内容, 共 268.4 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

打造基于 PostgreSQL/openGauss 的分布式数据库解决方案

SphereEx

数据库 开源 分布式数据库 ShardingSphere SphereEx

等保工作五大误区汇总,让你更懂等保!

行云管家

网络安全 等保 等级保护

Go语言学习查缺补漏ing Day2

恒生LIGHT云社区

Go 编程语言

前端开发怎么学习才能更快的提高学习效率

@零度

大前端

Redis架构实战:高并发情况下并发扣减库存

编程江湖

java编程

同态加密实现数据隐私计算,能让你的小秘密更加秘密

华为云开发者联盟

数据 加密 同态加密 联邦计算 数据隐私计算

复杂场景,从OpenTSDB迁移到TDengine的最佳实践

TDengine

数据库 tdengine

MySQL「 Every derived table must have its own alias」1248 错误修复法

蒋川

数据库 MySQL 运维 MySQL 数据库

小伙伴如何更有效的自学java开发

@零度

JAVA开发 自学java

面对行业难题,华为云邀请物联网全行业拿出“亮剑”精神

华为云开发者联盟

IoT 华为云 LiteOS HarmonyOS IoT边缘

如何在 Flutter 中设置背景图像【Flutter专题15】

坚果

flutter 28天写作 签约计划第二季 12月日更

百度智能客服斩获 “金音奖—中国最佳客户联络中心技术与解决方案奖”

百度大脑

人工智能 智能客服

什么是云计算?云计算特点是什么?

行云管家

云计算 公有云 混合云 云资源

清空数组的几个方式

编程江湖

大前端

火山引擎+焱融 YRCloudFile,驱动数据存储新增长

焱融科技

云计算 分布式 云原生 高性能 文件存储

大数据开发技术应该怎么学习入门才好

@零度

大数据

IaaS首席架构师的架构设计思考与实践

华为云开发者联盟

架构 分布式 IaaS 虚拟化 华为云Stack

CIO如何制定低代码/无代码战略

BeeWorks

mPaaS 月度小报|魔方卡片(Cube)公测,十个卡片模板任意使用

蚂蚁集团移动开发平台 mPaaS

小程序 消息推送 移动开发 API网关 cube

dart系列之:HTML的专属领域,除了javascript之外,dart也可以

程序那些事

flutter dart 程序那些事 12月日更

给弟弟的信第1封|兄弟是父母带给我们最好的礼物

大菠萝

28天写作

模运算和与运算的一点儿简单思考

LSJ

位运算 二进制

详解工作流框架Activiti的服务架构和组件

华为云开发者联盟

工作流 工作流引擎 BPM Activiti BPMN

软件工程师年满 40 岁,下一步怎么走?|本周话题

InfoQ写作社区官方

生涯规划 个人成长 职业规划 话题讨论

【Dart 专题】Factory 工厂构造函数

阿策小和尚

28天写作 0 基础学习 Flutter Android 小菜鸟 12月日更

为什么我们需要Pulsar?

博文视点Broadview

滚雪球学Python系列,真能学会Python!

梦想橡皮擦

内容合集 签约计划第二季

Git进阶(五):git 分支管理策略

No Silver Bullet

git 学习 12月日更

HBase 和 Hive 的差别是什么,各自适用在什么场景中

编程江湖

大数据

开始读 Go 源码了

AlwaysBeta

golang 源码 源码阅读 源码剖析 Go web

为什么我们需要Pulsar?

博文视点Broadview

OData v3与WCF Data Services 5.x简介_REST_Jonathan Allen_InfoQ精选文章