Saltar al contenido

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

Contamos con el resultado a este inconveniente, al menos eso creemos. Si tienes preguntas dínoslo y con placer te ayudaremos

Solución:

Las fuentes de OData pueden devolver datos como JSON para que sus páginas web puedan XHR sus datos y recibirlos como JSON, que se vuelve a deserializar en un objeto Javascript para que usted pueda separarlos y actuar sobre ellos o mostrarlos.

Aquí hay algunos enlaces adicionales para que pueda comenzar:

  • Nueva biblioteca Javascript OData [MSDN]
  • Protocolo OData por ejemplo [MSDN]
  • Aprovechar los puntos finales de OData en formato JSON con JQuery
  • Consumir un servicio OData con JayData
  • Consumir un servicio OData con BreezeJS

HH.

También hemos producido una pequeña biblioteca bastante genial llamada Data.js (http://datajs.codeplex.com/) que acelerará significativamente el consumo de OData de 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 usándolo con CoffeeScript, jQuery y Knockout.js.

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

La consulta mencionada anteriormente 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 traduce a …/Titles?$filter=5, por lo que las operaciones no se realizan en el cliente, incluso si la sintaxis simple lo sugiere.

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

valoraciones y reseñas

Si te ha sido de utilidad nuestro artículo, sería de mucha ayuda si lo compartes con el resto desarrolladores de esta manera contrubuyes a dar difusión a nuestra información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *