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’)/?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.
Y hasta aquí llega este segundo post sobre las novedades de la API REST de SharePoint 2013.