section bootstrap javascript jquery odata breeze jaydata

javascript - bootstrap - id html



¿Cómo consumir el servicio OData con Html/Javascript? (4)

Como alternativa, puede darle una oportunidad a JayData , que es compatible con oData, basado en la biblioteca de datos de Supercool. Proporciona una capa de acceso a datos abstractos sobre varios proveedores o protocolos de almacenamiento, uno de ellos importante es OData.

La consulta antes mencionada se vería así.

var source = new $data.yourOdataContext({serviceUri:"http://odata.netflix.com/v2/Catalog"}); source.Titles .take(5) .forEach( function(catalog) { render(catalog); });

Como es de esperar, esto se traducirá a ... / Títulos? $ Filter = 5, por lo que las operaciones no se realizan en el cliente, incluso si la sintaxis simple lo sugiere.

JayData le proporcionará la Consulta de idioma de JavaScript (JSLQ), lo que le permitirá consultar datos utilizando la función de filtro estándar ES5: todo con JavaScript, no se requiere conocimiento de la sintaxis de consulta de OData.

Nuestro proyecto actualmente utiliza Silverlight para consumir un servicio Odata. Esto ha hecho que la vida sea bastante simple, ya que solo podemos hacer referencia al servicio OData, lo que nos da referencias / entidades de servicio generadas.

Sin embargo, hay cierta discusión sobre si deberíamos cambiar a Html (html5). Me gustaría saber qué esperar si hacemos este cambio. Estaríamos aprovechando un marco como jQuery, por supuesto.

  • Mi principal preocupación es cómo consumir el mismo servicio OData a través de JavaScript / jQuery.
  • ¿Cómo se supone que deserializamos / serializamos las entidades devueltas desde este servicio OData?
  • ¿Se supone que nuestro contrato de datos está codificado (si es así, esto es realmente inaceptable para nosotros)?

¡Gracias!



También hemos producido una pequeña biblioteca muy interesante llamada Data.js (http://datajs.codeplex.com/) que acelerará significativamente el consumo de OData desde JavaScript. Aquí hay una muestra en 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))

Y el JavaScript que genera:

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); }); })();

Hasta ahora he tenido éxito al usarlo con CoffeeScript, jQuery y Knockout.js.


Las fuentes de OData pueden devolver datos como JSON, por lo que sus páginas web pueden XHR y recibirlos como JSON, que vuelve a ser serializado en un objeto de Javascript para que los pueda seleccionar y actuar o mostrar.

Aquí hay algunos enlaces adicionales para comenzar:

HTH.