写点什么

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:301918
用户头像

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

关注

评论

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

(28DW-S8-Day12) 读一份刚发布的《在线学习大数据报告》

mtfelix

大数据 28天写作

产品训练营 12 课:PRD需求文档

三笠

产品训练营

基于pandas

rainbow

据说很多女性看不懂地图——视觉表象

Justin

心理学 28天写作 游戏设计

靠速度说话!你还不够了解的“新基建闪电侠”

脑极体

为什么你停滞不前

ES_her0

28天写作 3月日更

区块链培训哪家专业,引领区块链技术创新

CECBC

区块链

Mybatis系列全解(八):Mybatis的9大动态SQL标签你知道几个?提前致女神!

潘大壮

Java 后端 mybatis 后台 mybatis源码

SRS流媒体服务器源码分析:Rtmp publish流程

赖猫

音视频 服务器 SRS 流媒体开发

线上故障后的第一要务

鱼天翱

线上故障 问责

翻译:《实用的Python编程》03_04_Modules

codists

Python

Spark支持自定义Python环境

walker12138

Docker spark k8s Jupyter Notebook

架构学习2021年03月03日(002)

张小胖

职场中吃力不讨好?从根因上去破解

一笑

28天写作

死磕归并排序算法

Silently9527

算法 排序算法 快速排序

Synchronized升级成重量级锁之后就下不来了?你错了!

yes

Java JVM

互联网信贷风险与大数据 个人信贷业务互联网化

张老蔫

28天写作

工作中,我们常用的Oracle内置函数有哪些?

xiezhr

oracle sql sql查询 函数 3月日更

呀,又是一个谣言「Day 12」

道伟

28天写作

不用代码趣讲 ZooKeeper 集群

HelloGitHub

Java zookeeper ZooKeeper原理

备战金三银四必看:2021最新版Java春招手册(五大面试专栏)

比伯

Java 编程 架构 面试 程序人生

用三个分析看,AI会是百度智能云的好“捕手”吗?

ToB行业头条

百度 #百度智能云#

||运算你真的了解吗?

叫练

运算符 java基础

试用期没过,因在公司上了1024网站...

程序猿石头

程序员 网络安全 信息安全 个人隐私

LeetCode题解:190. 颠倒二进制位,使用遮罩,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

Python基础之:Python中的流程控制

程序那些事

Python 程序那些事 流程控制

c#包含日志输出的项目搭建

happlyfox

C# 日志 28天写作 3月日更

Kubelet从人门到放弃:拓扑管理(下)

DCOS

Serverless Kubernetes 微服务 云原生 函数计算

恋物志(一):网红带货,宠主追捧,2021年宠物智能硬件会火吗?

脑极体

KMP的小记录

Geek_02fd98

KMP

【笔记】第六周-第1课

Geek_娴子

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