如何消耗的HTML / JavaScript的OData服务?(How to consume ODa

2019-06-23 13:53发布

我们的项目目前使用的Silverlight消费OData服务。 这使得生活非常简单,因为我们可以直接引用OData服务从而给我们产生的服务参考/实体。

然而,有我们是否应该移动到HTML(HTML5)的讨论。 我想知道会发生什么,如果我们做出这种改变。 我们希望借力像当然jQuery的一个框架。

  • 我主要关心的是如何消费通过JavaScript / jQuery的相同的OData服务。
  • 我们如何想反序列化/序列化实体从这个OData服务返回?
  • 我们的数据的合同应该是硬编码的(如果是的话,这实在令人难以接受我们)?

谢谢!

Answer 1:

OData的来源可以返回数据作为JSON所以您的网页可以XHR您的数据和接收它作为JSON它被反序列化回一个Javascript对象为您挑选分开,ACT-时或显示。

这里有一些额外的链接,让你开始:

  • 新的JavaScript的OData库[MSDN]
  • 通过示例的OData协议[MSDN]
  • 在使用jQuery JSON格式利用的OData端点
  • 消费与JayData OData服务
  • 消费与BreezeJS OData服务

HTH。



Answer 2:

我们还制作称为一个很酷的小图书馆Data.js(http://datajs.codeplex.com/)将显著加快从JavaScript的OData消费。 下面是CoffeeScript的一个示例:

success = (data) -> $("#searchResultsTemplate").tmpl(data).appendTo("#resultsArea")
error = (err) -> $("#resultsArea").text(JSON.stringify(err.message))

do ->
  $("#search").click(->
    OData.defaultHttpClient.enableJsonpCallback = true
    OData.read("http://odata.netflix.com/v2/Catalog/Titles?$top=5", success, error))

和JavaScript它产生:

 success = function(data) {
    return $("#searchResultsTemplate").tmpl(data).appendTo("#resultsArea");
  };

  error = function(err) {
    return $("#resultsArea").text(JSON.stringify(err.message));
  };

  (function() {
    return $("#search").click(function() {
      OData.defaultHttpClient.enableJsonpCallback = true;
      return OData.read("http://odata.netflix.com/v2/Catalog/Titles?$top=5", success, error);
    });
  })();

到目前为止,我一直在使用它的CoffeeScript,jQuery和Knockout.js了成功。



Answer 3:

作为替代方案,你可以给一个镜头JayData ,它具有的OData支持-基于过冷却datajs库。 它在几个存储提供商或协议提供了一个抽象数据访问层,其中之一是重要的OData。

上述查询将是这个样子

var  source = new $data.yourOdataContext({serviceUri:"http://odata.netflix.com/v2/Catalog"});

source.Titles
  .take(5)
  .forEach( function(catalog) { render(catalog); });

正如你可能不会想到这个被翻译成... /标题?$过滤器= 5,所以操作不会在客户端完成,即使简单的语法可能建议。

JayData会给你的JavaScript语言查询(JSLQ)让您查询使用ES5标准过滤器功能数据:所有的JavaScript,需要不的OData查询语法的知识。



Answer 4:

如果你想在表中显示和使用排序,分页,搜索数据,你可以使用jQuery插件数据表https://www.datatables.net/与OData的连接器http://vpllan.github.io/jQuery.dataTables。 ODATA /

你不需要任何额外的编程,因为数据表将执行的操作有你。



文章来源: How to consume OData service with Html/Javascript?