APIs para SharePoint Online

jcgonzalezmartin1 2,015 views 44 slides Mar 16, 2015
Slide 1
Slide 1 of 44
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44

About This Presentation

Presentación APIs para SharePoint Online del curso de desarrollo para Office 35 realizado en Madrid los días 16 y 17 de marzo de 2015


Slide Content

Curso Desarrollo Office 365 Marzo 2015

APIs para Apps de SharePoint Online: Modelo de Objetos en Cliente & API REST Juan Carlos González (@jcgm1978) Cloud & Productivity Advisor en MVP Clúster MVP de SharePoint Server

Agenda Overview de las APIs de Office 365 y SPO Posibilidades de las APIs de SPO API REST Sabor JavaScript Sabor .NET

APIs de Office 365 SharePoint Sitios Exchange & Outlook.com Calendario Contatos Correo Directorio Activo de Azure Usuarios Grupos OneDrive OneDrive para Empresas OneDrive API de Cliente Búsquedas Sitios, Listas . Bibliotecas Taxonomía BCS Workflow …

APIs de Cliente de SharePoint Online Código de Cliente Personalizado (Aplicaciones Web, Aplicaciones de Escritorio, Aplicaciones de un Dispositivo) _ api Sabor JavaScript Sabor Silverlight Sabor .NET Execute query REST/ OData … Búsqueda Sitios , Listas y Bib. Taxonomía BCS Workflow

_API – El poder está en tus manos _API Client/Server/Mobile Symmetrical OAuth Enabled 600+ Classes Declarative, Remote Events Fully Remote 3000+ Methods OData j Query Compatible Private and Public Clouds JSON

Posibilidades de las APIs para SPO

Arquitectura general del MO en Cliente Client.svc JSON XML _api Alineado con el SSOM

Elementos que forman parte del MO en Cliente Sabor JavaScript - Bibliotecas específicas Contexto CAML Conjunto de Ensamblados .NET Colección de Sitios, Webs, Listas, Elementos de Lista, Vistas, Campos y Carpetas, elementos de Lista y Documentos Schemas, Files, and Folders Posibilidades del MO Cliente Web Parts , Seguridad, Tipos de Contenidos, Plantillas de Sitios Perfiles de usuario , Suministro de Noticias, Búsqueda, Taxonomía, Publicación Flujos de Trabajo, E-Discovery, IRM, BCS, Búsquedas, Traducciones, --- Llamadas de domino cruzado Llamadas Asíncronas Contexto CAML Llamadas Síncronas

Elementos que forman parte del MO en Cliente SPO Client SDK: http ://www.microsoft.com/en-us/download/details.aspx?id=42038

REST vs. CSOM HTTP Verbs GET POST PUT DELETE _api .Net HttpWebRequest HttpResponse JavaScript jQuery Context.Web.Lists CSOM Context. Web.Lists [ guid ] Web.Lists.GetByTitle ("Title") Context . Web.Lists [ guid ].Fields Context . W eb.SiteUsers /_api/web/ lists REST /_ api/web/ lists (‘ guid ’) /_ api /web/lists/ getbytitle (‘Title’) /_ api /web/lists/ getbytitle (‘Title’)/ Field /_api/web/ siteusers

REST vs. CSOM Acceso consistente a datos y servicios: API REST URL JavaScript Client Namespace Web http://weburl/_api/Web SP Microsoft.SharePoint.Client Search http://weburl/_api/Search SP.Search Microsoft.SharePoint.Client.Search Taxonomy http://weburl/_api/Taxonomy SP.Taxonomy Microsoft.SharePoint.Client.Taxonomy BCS http://weburl/_api/BCS SP.BCS Microsoft.SharePoint.Client.BCS

API REST

Patrón de generación de Urls : Fundamentos de REST para SPO Acceso a Servicios de SPO …/_api/ SP.UserProfiles.PeopleManager …/_ api/ search …/_api/ publishing … Soporte a para realizar llamadas a métodos con parámetros Operaciones HTTP PUT GET POST DELETE

_ api /web/lists _ api /web/lists/ getByTitle ('Announcements') _ api /web/ getAvailableWebTemplates ( lcid =1033) _ api /search/ query?querytext =‘ searchTerm ‘ _ api / social.feed /my/Feed _ api / social.feed /my/News _ api / social.feed /my/ TimelineFeed API REST – Ejemplos de Urls 15

Soporte para OData (al menos 3.0) Comando Filter nos permite realizar operaciones de filtro Comando Select nos permite obtener columnas personalizadas Extiende las funcionalidades de REST proporcionando operadores de consutla Comando OrderBy nos permite realizar operaciones de ordnamieento _api/web/ lists / getbytitle (‘Lista')/ items ?$ Select = Title,EventDate _api/web/ lists / getbytitle (‘Lista')/ items ?$ Filter = Categoria eq 'Trabajo ‘ _ api/web/lists('<guid>')/ items$top =10

Una URI OData consta de: La URI raíz del servicio La ruta al recurso que se quiere acceder Unos parámetros de consulta Soporte para OData (al menos 3.0 )

Uso de la API REST

ATOM XML vs JSON - Dos formatos de respuesta posible: Uso de la API REST + fácil de procesar desde código manejado Hay que usar la cabecera “ application / atom+xml ” en las peticiones + manejable si se usa JavaScript ( jQuery ) Hay que usar la cabecera “ application / json ”

Crear un Elemento de Lista X- RequestDigest : (1) http :// www.wictorwilen.se/sharepoint-2013-how-to-refresh-the-request-digest-value-in-javascript

Actualizar Elementos de Lista

Borrar Elementos de Lista

Lectura de Información: Usar los objetos HttpWebRequest y HttpWebResponse Usar LINQ To XML para consultar los datos XDocument.Descendants Uso de la API REST – Código Manejado

Lectura de Información (2): Usar los objetos HttpWebRequest y HttpWebResponse También podemos leer la información en formato JSON Uso de la API REST – Código Manejado //REST URL string sRESTUrl = "https://itechcs.sharepoint.com/ sites /CO365DeveloperSite/_api/web/ lists " ; //Petición Web HttpWebRequest sphwrPeticion = ( HttpWebRequest ) WebRequest .Create ( sRESTUrl ); sphwrPeticion.Credentials = new SPCOSM. SharePointOnlineCredentials ( sSPOUser,ssPassword ); sphwrPeticion.Headers.Add ( "X-FORMS_BASED_AUTH_ACCEPTED" , "f" ); sphwrPeticion.Accept = " application / json;odata = verbose " ; HttpWebResponse sphwrRespuesta = ( HttpWebResponse ) sphwrPeticion.GetResponse (); StreamReader srReader = new StreamReader ( sphwrRespuesta.GetResponseStream ()); string sData = srReader.ReadToEnd ();

Creación de Información: Uso de la API REST – Código Manejado

Demo – API REST

Sabor JavaScript

¿Por qué JavaScript? Ejecución en el lado del Cliente Servicio de Traducción de Llamadas Mayor Cantidad Programadores Web JSON XML Variedad de Herramientas Desarrollo Lenguaje Dinámico Muchos Frameworks JavaScript jQuery de serie en Apps de SharePoint

¿ Qué posibilidades tenemos en SPO? 29 CSOM ECMAScript Servicios de SharePoint REST OData HTML CSS

Uso del sabor JavaScript

Crear Elementos de Lista 31

Actualizar Elementos de Lista 32

Borrar Elementos de Lista 33

Demo - JavaScript

Sabor .NET

Uso del sabor .NET 36 Load() and LoadQuery () inicializan las propiedades ExecuteQuery () realiza la llamada al servidor Podemos tener excepciones de tipo PropertyOrFieldNotInitializedException

Uso del sabor .NET 37

Demo - Sabor .NET

http://www.metricsthatmatter.com/student/evaluation.asp?k=16302&i=892358 Encuesta de Satisfacción

Dev. .com Office One stop shop for Office Developer Platform

Explora el Centro de Desarrollo http://dev.office.com Calls to action Proporciona “ Feedback ” http://aka.ms/OfficeDevFeedback Obtén respuestas http://aka.ms/AskSharePoint http://aka.ms/AskOffice Juega con los Ejemplos de Código http://dev.office.com/code-samples Fórmate http://dev.office.com/training

Transforma tu código Proporciona Patrones del Modelo de Apps para escenarios comunes de código Full-Trust + 100 Proyectos de Visual Studio Escenarios Comunes Branding Provisionamiento de Sitios Manejadores de Eventos Remotos Soporte de archivos grandes Navegación basada en meta-datos Y muchos más… Contribuye!!! https://github.com/OfficeDev/ Developer Patterns & Practices

Cursos de Microsoft Virtual Academy 2014 Aug Sept Oct Introduction to Office 365 Development 2015 Jan Nov Dec Deep Dive into the Office 365 App Model Deep Dive into integrating Office 365 APIs with your standalone web application development Deep Dive into integrating Office 365 APIs with your mobile device development Shipping your Office 365 App to the Office Store Deep dive into the building blocks and services of the SharePoint platform Feb Deep Dive into Office 365 Development on non-Microsoft Stack

© 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.