SharePoint 2013: Novedades en la API REST (II)!

Siguiendo con la serie de posts en torno a las novedades de la API RET en SharePoint 2013, en esta ocasión vamos a ver dos formas alternativas de trabajar con la misma:

  • La primera forma, es a través del navegador y como alternativa a _api. Podemos llamar directamente al servicio client.svc. Por ejemplo, para acceder a los datos del sitio es suficiente con usar una URL de la forma: http://<UrlSitioSharePoint>/_vti_bin/client.svc/web
  • La segunda, a través de código manejado…en concreto vamos a ver como procesar una llamada que nos permitar por ejemplo trabajar con una lista del sitio con una URL de la forma: http://<UrlSitioSharePoint>/_api/web/lists/getByTitle(‘Clientes&#8217;)/?select=Title. Esta consulta simplemente nos da el título de la lista.
  • Creamos un proyecto de tipo aplicación de consola eligiendo como versión de .NET Framework la 4.5. Agregamos referencia a System.Xml y directivas using a System.Net, System.IO y System.Xml.Linq.
  • El código necesario para trabajar con la lista es el siguiente:
   1:                  string sURLConsulta = "http://c4431163311" +
   2:                      "/_api/web/lists/getByTitle('Clientes')/?select=Title";
   3:                  Uri uRESTService = new Uri(sURLConsulta);
   4:   
   5:                  //Petición REST
   6:                  HttpWebRequest hwrPeticion =
   7:                      (HttpWebRequest)WebRequest.Create(uRESTService);
   8:                  hwrPeticion.Credentials =
   9:                      CredentialCache.DefaultNetworkCredentials;
  10:                  hwrPeticion.Accept = "application/atom+xml";
  11:   
  12:                  //Envío de la petición al servidor
  13:                  HttpWebResponse hwrRespuesta =
  14:                      (HttpWebResponse)hwrPeticion.GetResponse();
  15:                  StreamReader srReader =
  16:                      new StreamReader(hwrRespuesta.GetResponseStream());
  17:   
  18:                  //Procesando la respuesta
  19:                  XDocument xdDoc =
  20:                      XDocument.Load(hwrRespuesta.GetResponseStream());
  21:                  XNamespace xnEspacioNombres =
  22:                      "http://schemas.microsoft.com/ado/2007/08/dataservices";
  23:   
  24:                  string sTitle = xdDoc.Descendants(xnEspacioNombres + "Title").First().Value;
  25:   
  26:                  //Salida por pantalla
  27:                  Console.WriteLine("Lista:{0}",sTitle);

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

  • Cómo veis, lo primero que se hace es crear un objeto de tipo Uri a partir de la consulta a realizar que en este caso simplemente nos devuelve el nombre de la lista. A continuación se crea un objeto HttpWebRequest para crear la petición a partir de la Uri llamando al método Create() de WebRequest.
  • A partir de crear la petición, establecemos tanto las credenciales para la misma como su encabezado HTTP (propiedad Accept).
  • Lo siguiente que hacemos es enviar la petición al servidor y obtener su respuesta mediante un objeto de tipo HttpWebResponse qué como veis se construye a partir de llamar al método GetResponse del objeto HttpWebRequest.
  • Finalmente, la respuesta la almacenamos en un objeto de tipo StreamReader que luego podremos trata fácilmente mediante LINQ To XML. Fijaros qué en este caso a través del método Descendants() del objeto XDocument generado obtenemos de forma muy sencilla el título de la lista.
image   image

Y hasta aquí llega este segundo post sobre las novedades de la API REST de SharePoint 2013.