AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

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

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

关注

评论

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

Sanic 是什么:扩展性和性能并存的Web框架

Apifox

Python 程序员 后端 异步编程 sanci

【腾讯云 Cloud Studio 实战训练营】沉浸式体验编写一个博客系统

全栈若城

项目实战 Cloud Studio

Java零基础适合看的5本书!

java易二三

Java 编程 教学 新手入门

直播平台源码开发提高直播质量的关键:视频编码和解码技术

山东布谷科技

软件开发 直播 视频编解码 源码搭建 直播平台源码

使用Cloud Studio&Flutter完成全平台博客网站的搭建

坚果

flutter Cloud Studio

AIRIOT可视化组态引擎如何应用于物联业务场景中

AIRIOT

用友推出基于 BIP3 的新一代 HOP 产品

用友BIP

医疗

新功能 – Cloud WAN:托管 WAN 服务

亚马逊云科技 (Amazon Web Services)

Amazon VPC

桂林等级保护测评机构有几家?有哪些?哪里可以查到?

行云管家

等级保护 等保测评 桂林 桂林广西

技术分享|GrowingIO分析云对ClickHouse的实践

极客天地

基于新浪微博海量用户行为数据、博文数据数据分析:包括综合指数、移动指数、PC指数三个指数

汀丶人工智能

数据挖掘 机器学习 数据分析

看头部银行保险企业如何释放数智生产力|数智新金融论坛精彩回顾

Kyligence

数智化 Kyligence Copilot

Java break语句详解!

java易二三

Java 编程 计算机 break 循环

快速玩转 Llama2!阿里云机器学习 PAI 推出最佳实践(三)——快速部署 WebUI

阿里云大数据AI技术

人工智能

火山引擎DataLeap的Data Catalog系统公有云实践 (下)

字节跳动数据平台

数据库 数据中台 数据治理 数据安全 企业号 7 月 PK 榜

线程池中多余的线程是如何回收的?

java易二三

Java 编程 程序员 面试 计算机

Java 后端有哪些不用学的技术?劝退。。。

java易二三

Java 编程 计算机 jsp

软件测试/测试开发丨Python 内置库 OS 学习笔记分享

测试人

Python 软件测试 测试开发 os内置库

Java 命令行参数解析方式探索(三):Picocli

冰心的小屋

Java 命令行 console Parameter Picocli

零代码,使用 Dify 两分钟接入企业微信 AI 机器人

Dify

开源 AI LLMOps

前端服务化和小程序容器技术的应用

没有用户名丶

面试还不懂Redis与MySQL数据一致性,看这篇就够了

程序员小毕

Java 数据库 程序员 面试 架构师

saas平台定义以及优点、特点简单介绍

行云管家

SaaS 平台

C++实现哈希桶

芯动大师

Docker学习路线13:部署容器

小万哥

Java c++ Python Go Docker

助力企业出海!TDengine Cloud 正式入驻 AWS Marketplace

爱倒腾的程序员

时序数据库

向量数据库这杯“啤酒”与“泡沫”

脑极体

AI 向量数据库

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