首页
学习
活动
专区
圈层
工具
发布

OData – the best way to REST–实例讲解ASP.NET WebAPI OData (V4) Service & Client

1.2,OData on .NET OData 的前身是WCF Data Service,后来演变成跨平台的数据查询协议,现在,除了WCF支持OData,ASP.NET WebAPI 已经内置支持OData...二、OData WebAPI搭建 2.1,创建项目 新建一个ASP.NET WebAPI 项目,名字是 ODataWebApplication ,如下图: ?...2.5,正确的OData 服务程序 再次运行,程序不报错了,用谷歌浏览器来打开本程序,出现了下面的内容,就表示ASP.NET WebAPI OData V4 已经成功了: { "@odata.context...Client T4 信息 根据错误信息,找到T4文件错误的位置,将前面的OData WebAPI项目的地址,写在文件里面,如下所示: // The URI of the metadata document...仔细研究下前面的代理类,我们发现这里关键依赖于  Microsoft.OData.Client 程序集的DataServiceContext 对象,将代理类进行抽取封装就可以完成我们手工的代理类了。

3.2K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    基于jQuery的ajax对WebApi和OData的封装我们还是先来看看要求在看看目标:思路封装方式

    基于jQuery的ajax对WebApi和OData的封装   WebApi 的使用带来了一个显著的特点,对type有一定的要求。一般ajax的type无非就是两种,GET和POST。...但是我觉得,这个总是要有个过程,另外写代码的时候还要想想是put还是post,万一写错了,就会带来不必要的麻烦。那么能不能封装一下呢?   ...WebApi 刚才说过了,OData呢,确实很强大也很灵活,只是太灵活了,导致增加了学习成本和时间,那么能不能也封装一下,变成大家熟悉的方式呢? 思路 ?   ...这样做便于切换,OData是很强大,但是并不意味着一定会一直使用OData,哪天不用了,客户端的调用代码总不能也跟着大变脸。...添加和修改的封装就比较简单了,设置好type也就没啥事情了,然后可以根据自己的实际情况加点辅助功能,比如设置ID,设置租户ID等。   删除呢,看着简单,但是实际上是相当的复杂。

    1.3K100

    入门:构建简单的Web API

    在NuGet管理扩展器上查询Online的”webapi.all“ ? 选择安装,NuGet就会下载所有所需的软件包,现在可以开始开发Web Api。...注意这里的UriTemplate被设置为“”,默认情况下,操作的Uri是方法名Get,在这种情况下,我们是在Route中设置的Uri。...选择是基于响应可得的表现形式(根据不同的维度,响应会不同;例如,语言,内容编码,等等)和请求消息里特定的头域或关于请求的其他信息(如:网络客户端的地址)。...8、启用OData 查询支持 Web API支持OData协议,接受OData的URI格式查询,当OData 查询到达Web Api, 在返回客户端之前在服务端会进行必要的过滤和排序。...2011-10-4日更新到WebAPI 0.5 Preview

    4.1K90

    Asp.Net Web API 2第十八课——Working with Entity Relations in OData

    在实践中,这可能比使用整形键不太常见的。但它是值得的看到OData如何处理除了整数以外的其他键类型。 接下来,我们将通过在Product类上添加一个Supplier的属性来建立一个关系。...这个方法返回关联的实体——在这个实例中,就是一个Supplier对象。方法的名称和参数的名称都是非常重要的。总之,如果导航属性被命名为一个“X”,你需要添加一个被命名为“GetX”的方法。...例如,最合适的导航属性Supplier。 第三个link:被链接实体的OData的URI。这个值是从消息体中获得。...如果导航属性是一个集合,对于删除一个链接的URI必须在被关联的实体中有一个键。...将ID=2的Supplier修改为WING 请求Header POST http://localhost/odata/Products(2)/$links/Supplier Content-Type:

    1.3K51

    C#进阶系列——WebApi 接口参数不再困惑:传参详解上

    由上图可知,在get请求时,我们直接将json对象当做实体传递后台,后台是接收不到的。这是为什么呢?我们来看看对应的http请求 ?...二、post请求 在WebApi的RESETful风格里面,API服务的增删改查,分别对应着http的post/delete/put/get请求。我们下面就来说说post请求参数的传递方式。...1、基础类型参数 post请求的基础类型的参数和get请求有点不一样,我们知道get请求的参数是通过url来传递的,而post请求则是通过http的请求体中传过来的,WebApi的post请求也需要从...但是这里需要注意的一点就是,这里不能指定contentType为appplication/json,否则,参数无法传递到后台。我们来看看它默认的contentType是什么: ?.../value属性值的对象就可以接收到。

    7.1K90

    在一个空ASP.NET Web项目上创建一个ASP.NET Web API 2.0应用

    Web API应用的项目模板,借助于此项目模板提供的向导,我们可以“一键式”创建一个完整的ASP.NET Web API项目。...我们通过指定的联系人对象是否具有Id来判断当前操作是“修改”还是“添加”。对于后者,我们会创建一个新的对象作为添加的联系人对象。被修改或者添加的联系人对象被“赋值”给contact属性。...对话框的弹出通过调用表示对话框的的modal方法实现,该方法是由Bootstrap提供的。 save:发送Ajax请求调用Web API以添加新的联系人或者修改现有某个联系人的信息。...contact属性作为提交的数据,至于“添加”还是“修改”,同样是通过它是否具有相应的Id来决定。联系人成功添加或者修改之后,load方法被调用以刷新当前联系人列表。...由于这两个链接HTML内嵌于foreach绑定之中,所以当前绑定上下文实际上是contacts属性中某个联系人对象。“$root”前缀的目的在于告诉KO绑定的是ViewModel自身的成员。

    5.4K110

    快速入门系列--WebAPI--03框架你值得拥有

    接下来进入的是俺在ASP.NET学习中最重要的WebAPI部分,在现在流行的互联网场景下,WebAPI可以和HTML5、单页应用程序SPA等技术和理念很好的结合在一起。...所谓ASP.NET WebAPI,其核心概念就是构建REST风格的Web服务,把一起数据视为资源,无论是服务请求或者是数据操作,与以前的SOAP和XML-RPC架构风格有很大不同。...框架通过单例提供HttpControllerHandler对象,多个HttpWebRoute共享对象,并且它将创建右侧的ASP.NET Web API处理管道,通过调用BeginProcessRequest...,通过InnerHanlder属性进行传递,是责任链模式的实现?...HttpServer Dispatcher属性指向最终的分发器对象,Configuration属性包含了所有的配置信息。

    2.6K90

    Asp.Net Web API 2第十七课——Creating an OData Endpoint in ASP.NET Web API 2(OData终结点)

    OData的还定义了一个方法来公开元数据有关的数据。客户端可以使用元数据来发现类型信息和关系的数据集。ASP.NET Web API OData可以很容易的创建OData终结点的数据集。...选择合适的模版进行创建项目 并命名为OData,点击确认后,在下一个Asp.Net 项目对话框中选择 Empty的空模版,并在以下对象添加文件夹和核心引用下:进行勾选Web  API。...添加一个实体模型  一个model就是在应用程序中展现数据的一个对象。在本教程中,我们需要一个展现产品的模型。这个模型对应着我们的OData的实体类型。...属性为实体键。...如果你想更多的来控制EDM,使用ODataModelBuilder类明确的添加属性、键、导航属性来创建EDM。 这个EntitySet 方法就是将一个实体添加到EDM实体中。

    1.6K31

    BaaS API 设计规范

    异常处理 请求失败返回 4XX 后,响应的主体依然是 Result 数据格式。其中 message 表示错误的信息。方便进行调试。...其中,JSON 数据中不需要列全所有的属性,只需要列出需要更新的属性即可。 如:PUT /users/1 {username:'hqf'}。...(另:如果使用 ASP.NET WebApi 框架搭建API,则这里需要提供统一的框架处理此类型的反序列化。) 2.3.1.3. 删除 地址:具体某个资源的地址。如 /users/1。...数据格式:使用一个 JSON 对象提交数据,该对象中包含一个属性名为 list,属性类型为数组的属性。该数组中的每一个对象都是要更新的实体对象。...不能使用 PUT、DELETE 动作。 · Action 不要使用简单的、通用的名称。如不要使用与资源操作冲突的 Get、Add、Update、Delete、Save 等名称。

    3.7K111

    ASP.Net MVC开发基础学习笔记:五、区域、模板页与WebAPI初步

    你可能感到疑惑:为什么我们不能在主应用程序的路由定义中指定Admin部分?...其实很简单,只需要在要使用模板页的View中修改Layout属性即可: ? 2.2 View未动,ViewStart先行   在Razor视图引擎中,所有页面启动之前,ViewStart文件会先执行。...综上所示,REST是一种简洁的设计风格,通过URL来设计系统,以URI来抽象各种资源,以HTTP协议的PUT、DELETE、GET、POST来对应对资源的各种操作。...3.2 WCF and WebAPI   首先,ASP.NET Web API 和WCF有着千丝万缕的联系。   ...;   ③用于PUT方式的方法有:   PutProduct用于修改一个指定的产品信息;   ④用于DELETE方式的方法有:   DeleteProduct用于删除一个选择的产品信息;   以上GET

    2.8K20

    带你了解OData

    其他组织就可以按照OData标准中定义的方式去使用这个API获取/修改资源。这个可以类比SQL标准之于RDBMS关系。...A的API 可能是这样:http://A/api/person/001 B的API 可能是这样:http://A/api/person/id=001 第三方客户端在实现远程调用的时候就必须考虑这些API...How – 如何使用OData? 首先看一下C#客户端调用符合OData标准的WebApi是多么的方便(官网http://www.odata.org/上也有js的类库)。...第三步:假设存在一个可用的WebApi(后面介绍如何创建) - http://localhost:33189/Odata. 我们修改代码模板中的MetadataDocumentUri如下, 然后保存。...T4可以怎么做是因为WebApi是按照OData的标准去公布资源列表和资源的元数据。 ? 第四步:在我们的代码中就可以操作CLR对象来消费远程的webAPI了。体验到Odata标准的力量了吧。 ?

    3.9K30

    Asp.Net WebApi核心对象解析(一)

    在.NET的体系中的分布式技术主要有webservice,.net remoting,MSMQ,WCF等等,但是今天介绍的是Asp.Net WebApi,对于Asp.Net WebApi技术,估计很多人都不会陌生...一.WebApi概述:      ASP.NET Web API是在.NET Framework之上构建的Web的API的框架,ASP.NET Web API是一个编程接口,用于操作可通过标准HTTP...: new { id = RouteParameter.Optional } );     我们在设置WebAPI路由时,已尽量注意与AspNet Mvc的路由发生冲突,这一点在ASP.NET Web...,例如“GetContact”或“GetAllContacts”开头的动作。该公约只适用于GET,POST,PUT和DELETE方法。您可以通过使用控制器上的属性启用其他HTTP方法。      ...ApiController类中的公共静态(在Visual Basic中共享)成员是线程安全的,任何实例成员都不能保证是线程安全的。

    5.6K70

    ASP.NET Core 奇淫技巧之动态WebApi

    一.前言 接触到动态WebApi(Dynamic Web API)这个词的已有几年,是从ABP框架里面接触到的,当时便对ABP的这个技术很好奇,后面分析了一波,也尝试过从ABP剥离一个出来作为独立组件来使用...十几天前朋友 熊猫 将这部分代码(我和他在搞事情)成功的从 ABP 中剥离出来并做了一个简单Demo扔给我,经过这么久(实在是太懒^_^)终于经过一些修改、添加功能、封装,现在已经能作为一个独立组件使用...源自于ABP的一个可独立使用的,可自动为你的业务逻辑层生成 ASP.NET Core WebApi 层的开源组件。...1.准备 (1)建立两个项目一个是应用逻辑层类库项目;一个是作为生成WebApi Host,ASP.NET Core WebApi项目 ?...2.配置 所有的配置均在对象 DynamicWebApiOptions 中,说明如下: 属性名 是否必须 说明 DefaultHttpVerb 否 默认值:POST。

    2.3K20

    快速入门系列--WebAPI--04在老版本MVC4下的调整

    WebAPI是建立在MVC和WCF的基础上的,原来微软老是喜欢封装的很多,这次终于愿意将http编程模型的相关细节暴露给我们了。...在WebAPI v1.0(和ASP.NET MVC4在一起的版本)很多的类和接口并不存在,同时对Task异步编程(ApiController默认提供异步执行方法)的支持还有一些欠缺(缺少不少方便的扩展方法...Tip:模型绑定常见问题,WebAPI的格式化器Formatter需要提供相应的contentType才会起作用,返回值通过dataType设置(默认为XML),一定不能忘记内容协商,需要注意内容协商,...此外还提供一个关于OData的第三方解决方案,包括可以自动支持OData查询语法的QueryableAttribute(如$top和$filter等)。...其他小知识点 WebAPI的托管,包括通过System.Web.Http.WebHost.dll的IIS托管,配置对象为GlobalConfiguration;自托管的配置,通过Mocrosoft.AspNet.WebApi.Selfhost

    1.5K60

    .NET周刊【8月第3期 2024-08-18】

    SQLite是一种嵌入式、无服务器、零配置的轻量级关系型数据库,支持事务和ACID属性。教程包括配置SQLite环境,框架搭建,引入ORM,完善接口,Blazor组件库应用和发布部署。...通过添加CheckBox,并逐步修改默认样式,将其转换为开关样式,最后添加动画和触发器来实现切换效果。...文中介绍快捷键对象的定义与实现,提供运行界面和使用指南,并附源码下载链接。文章强调快捷键操作只在特定窗体有效,避免全局热键冲突。...CVE-2024-38168:ASP.NET HTTP.sys 拒绝服务漏洞 (.NET 8) CVE-2024-38167:TlsStream 信息泄露漏洞 (.NET 8) Visual Studio...ARM64 上的后缀索引寻址 环强度降低 Box对象堆栈分配 -GC 动态适应应用程序大小 C# 使用“OverloadResolutionPriority”属性确定重载优先级 SDK 改进了针对不安全注册表的发行容器

    2.5K10
    领券