Criar aplicativos móveis para outras plataformas usando o SharePoint

Saiba como usar a Transferência de Estado Representacional (REST) para criar um aplicativo móvel do SharePoint para qualquer plataforma.

Dispositivos móveis tornaram mais poderosas e fáceis de usar hoje em dia. Telefones celulares, netbooks, tablet PCs e laptops fornecem acesso às informações e aos aplicativos que precisam para realizar seus trabalhos para trabalhadores. E agora é mais fácil do que nunca como desenvolver aplicativos para dispositivos móveis. Como resultado, cada vez mais cenários de negócios exigem integrando aplicativos de cliente, juntamente com seus processos de negócios. Este artigo descreve como integrar aplicativos de cliente móvel em conjunto com SharePoint. Você pode criar um aplicativo móvel para navegar pelo conteúdo do SharePoint a partir de qualquer local e conectar-se com listas e bibliotecas do SharePoint para acessar os dados.

Para desenvolver um aplicativo móvel que interage com SharePoint 2013, você pode usar os serviços comuns que podem ser acessados usando protocolos abertos. SharePoint Foundation 2010 introduzido os modelos de objeto do cliente, que habilitado para desenvolvedores executar a comunicação remota com o SharePoint usando a tecnologia de sua escolha de programação da web: .NET Framework, Microsoft Silverlight ou JavaScript. O SharePoint introduz um serviço de Transferência de Estado Representacional (REST) que é totalmente comparável para modelos de objeto do cliente. No SharePoint, quase todas as API nos modelos de objeto do cliente terá um ponto de extremidade do REST correspondente. Agora, os desenvolvedores podem interagir remotamente com o modelo de objeto do SharePoint usando qualquer tecnologia que ofereça suporte a solicitações da web REST. REST pode ser consumido por qualquer linguagem de programação que você deseja usar para o desenvolvimento de aplicativos móveis. Você pode executar básica criar, ler, atualizar e excluir operações (CRUD) usando a interface REST fornecida pelo SharePoint 2013. A interface REST expõe todas as operações e entidades do SharePoint que estão disponíveis nas outras APIs cliente do SharePoint. Uma vantagem de usar REST é que você não precisa adicionar referências às bibliotecas do SharePoint ou assemblies de cliente. Em vez disso, você faz solicitações HTTP aos pontos de extremidade apropriados para recuperar ou atualizar entidades do SharePoint, como webs, listas e itens de lista. Para obter uma introdução completa à interface REST do SharePoint e sua arquitetura, consulte Usar operações de consulta OData em solicitações REST do SharePoint.

Pontos de extremidade do REST no SharePoint

Para usar os recursos do REST que são embutidos no SharePoint, você pode construir uma solicitação de HTTP por REST usando o padrão de Open Data Protocol (OData) que corresponde à API de modelo de objeto do cliente desejado. O serviço da web client.svc manipula a solicitação HTTP e serve a resposta apropriada, no formato Atom ou JavaScript Object Notation (JSON). O aplicativo cliente, em seguida, deverá analisar essa resposta. A Figura 1 mostra um modo de exibição de alto nível da arquitetura do REST do SharePoint.

Figura 1. SharePoint REST architecture

SharePoint REST architecture

Os pontos de extremidade no serviço REST do SharePoint correspondem aos tipos e membros nos modelos de objeto do cliente do SharePoint. Usando solicitações HTTP, você pode usar esses pontos de extremidade do REST para executar as operações CRUD típicas contra artefatos do SharePoint, como listas e sites.

Em geral:

  • Pontos de extremidade que representam as operações de leitura mapeiam aos comandos de GET HTTP.

  • Pontos de extremidade que representam o mapa de operações de atualização para comandos de POST HTTP.

  • Pontos de extremidade que representam atualizar ou inserir o mapa de operações para comandos de PUT HTTP.

Escolha de uma solicitação HTTP para usar, você também deve considerar o seguinte:

  • Use POST para criar artefatos como listas e sites. O serviço REST do SharePoint oferece suporte ao envio de comandos POST que incluem definições de objeto para pontos de extremidade que representam coleções.

  • Para operações de POST, todas as propriedades que não são necessárias são definidas para seus valores padrão. Se você tentar definir uma propriedade de somente leitura como parte de uma operação de POST, o serviço retorna uma exceção.

  • Use operações PUT, PATCH e MERGE para atualizar objetos existentes do SharePoint. Qualquer ponto de extremidade de serviço que represente uma propriedade de objeto de operação set oferece suporte a solicitações PUT e MERGE. Para as solicitações MERGE, a definição de propriedades é opcional; qualquer propriedade que você não definir explicitamente, conservará a propriedade atual. Mas para comandos PUT , todas as propriedades que você não definir explicitamente são definidas como suas propriedades padrão. Além disso, se você não especificar todas as propriedades settable em atualizações de objeto ao usar comandos HTTP PUT , o serviço REST retornará uma exceção.

  • Use o comando de DELETE HTTP contra a URL do ponto de extremidade específicos para excluir o objeto representado por esse ponto de extremidade do SharePoint. Para objetos recicláveis, como listas, arquivos e itens de lista, isso resulta em uma operação de Recycle. Para obter mais informações, consulte Conhecer o serviço SharePoint REST.

Autentique usuários no SharePoint

Para autenticar seu aplicativo móvel com o SharePoint, você pode usar o protocolo MS-OFBA. Para obter mais informações, consulte [MS-OFBA]: Especificação de protocolo de autenticação baseada em Formulários do Office. O cliente de protocolo está configurado para armazenar e transmitir cookies. O cliente de protocolo depende do servidor de protocolo remoto para definir a identidade do usuário como um ou mais cookies HTTP. Depois que a identidade do usuário for estabelecida, o cliente envia cada cookie com cada solicitação HHT subsequente.

Quando um usuário entra no SharePoint, o token do usuário é validado e, em seguida, usado para entrar SharePoint. O token do usuário é um token de segurança emitido por um provedor de identidade. O SharePoint oferece suporte a vários tipos de autenticação. Para obter mais informações, confira Autenticação, autorização e segurança no SharePoint. Para autenticar um usuário, você pode usar a interface REST. O processo de autorização certifica-se de que uma entidade autenticada (um aplicativo ou um usuário que o aplicativo está agindo em nome da) tem permissão para realizar determinadas operações ou para acessar recursos específicos (por exemplo, uma lista ou uma pasta de documentos do SharePoint.md).

OData permite acessar uma fonte de dados, como um banco de dados, navegando até um URL especialmente construído. Isso permite uma abordagem simplificada para conexão e como trabalhar com, fontes de dados que estão hospedados dentro de uma organização. OData é um protocolo que usa HTTP, Atom e JavaScript Object Notation (JSON) para permitir que os desenvolvedores criem aplicativos que se comunicam com um número crescente de fontes de dados. A Microsoft oferece suporte a criação desse padrão como uma maneira de habilitar a troca de dados entre aplicativos e repositórios de dados que podem ser acessados a partir da web. O novo conector para OData permite que o SharePoint se comuniquem com provedores de OData. Para obter mais informações, consulte Protocolo de Dados Abertos.

O código a seguir demonstra como autenticar seu aplicativo para SharePoint usando os pontos de extremidade do REST para autenticação básica ou baseada em formulários. O exemplo de código a seguir é criado em c#, mas qualquer linguagem de programação pode ser usada para criar a solicitação Http, conforme o requisito da plataforma.


string SharePointUrl = "https://Target SharePoint site";

private void AuthenticateToSharePoint(object sender, RoutedEventArgs e)
{
    ODataAuthenticator odataAt = new ODataAuthenticator("<Username>", "<password>");
    odataAt.CookieCachingEnabled = true;
    odataAt.AuthenticationCompleted += new EventHandler<AuthenticationCompletedEventArgs>(odataAt_AuthenticationCompleted);
    odataAt.Authenticate(new Uri(SharePointUrl, UriKind.Absolute));
}

void odataAt_AuthenticationCompleted(object sender, AuthenticationCompletedEventArgs e)
{
    HttpWebRequest endpointRequest = (HttpWebRequest)HttpWebRequest.Create(SharePointUrl.ToString() + "/_api/web/lists");
    endpointRequest.Method = "GET";
    endpointRequest.Accept = "application/json;odata=verbose";
          endpointRequest.CookieContainer = (sender as ODataAuthenticator).CookieContainer;

    endpointRequest.BeginGetResponse(new AsyncCallback((IAsyncResult res) =>
    {
        HttpWebRequest webReq = res.AsyncState as HttpWebRequest;
        WebResponse response = webReq.EndGetResponse(res);

        HttpWebResponse httpResponse = response as HttpWebResponse;
        HttpStatusCode code = httpResponse.StatusCode;
        this.Dispatcher.BeginInvoke(() =>
        {
            MessageBox.Show(code.ToString());
        });
    }), endpointRequest);
}

Para autenticar uma HttpWebrequest ao ponto de extremidade, você deve primeiro autenticar no SharePoint com a classe ODataAuthenticator. Antes de chamar o método Authenticate, registre o objeto ODataAuthenticator ao evento AuthenticationCompleted.

Depois que a autenticação é feita dentro do evento OnAuthenticationCompleted, você pode usar a propriedade CookieContainer no objeto ODataAuthenticator, que pode ser anexado ao objeto HttpWebRequest para autenticar as chamadas REST com o SharePoint.

Trabalhar com itens de lista do SharePoint usando o REST

O exemplo a seguir mostra como recuperar todos os itens de uma lista.


url: http://site url/_api/web/lists/GetByTitle('Test')/items
method: GET
headers:
// MS-OFBA protocol returns a cookie.
  Cookie: cookie


    accept: "application/json;odata=verbose" or "application/atom+xml"

O exemplo a seguir mostra como recuperar um item específico de lista.


url: http://site url/_api/web/lists/GetByTitle('Test')/items(item id)
method: GET
headers:

// MS-OFBA protocol return a cookie.
  Cookie: cookie
    accept: "application/json;odata=verbose" or "application/atom+xml"

O XML a seguir mostra um exemplo das propriedades do item de lista que são retornadas quando você solicita o tipo de conteúdo XML.


<content type="application/xml">
        <m:properties>
        <d:FileSystemObjectType m:type="Edm.Int32">0</d:FileSystemObjectType>
        <d:Id m:type="Edm.Int32">1</d:Id>
        <d:ID m:type="Edm.Int32">1</d:ID>
        <d:ContentTypeId>0x010049564F321A0F0543BA8C6303316C8C0F</d:ContentTypeId>
        <d:Title>an item</d:Title>
        <d:Modified m:type="Edm.DateTime">2012-07-24T22:47:26Z</d:Modified>
        <d:Created m:type="Edm.DateTime">2012-07-24T22:47:26Z</d:Created>
        <d:AuthorId m:type="Edm.Int32">11</d:AuthorId>
        <d:EditorId m:type="Edm.Int32">11</d:EditorId>
        <d:OData__UIVersionString>1.0</d:OData__UIVersionString>
        <d:Attachments m:type="Edm.Boolean">false</d:Attachments>
        <d:GUID m:type="Edm.Guid">eb6850c5-9a30-4636-b282-234eda8b1057</d:GUID>
    </m:properties>
</content>

O exemplo a seguir mostra como criar um item de lista.

Observação

Para fazer essa operação, você deve saber a propriedade ListItemEntityTypeFullName da lista e passá-lo como o valor do type no corpo da solicitação HTTP.


url: http://site url/_api/web/lists/GetByTitle('Test')/items
method: POST
body: { '__metadata': { 'type': 'SP.Data.TestListItem' }, 'Title': 'Test'}
headers:

// MS-OFBA protocol returns a cookie.
  Cookie: cookie
     X-RequestDigest = form digest value
    accept: "application/json;odata=verbose"
    content-type: "application/json;odata=verbose"
    content-length:length of post body

O exemplo a seguir mostra como Atualizar um item de lista.

Observação

Para fazer essa operação, você deve saber a propriedade ListItemEntityTypeFullName da lista e passá-lo como o valor do type no corpo da solicitação HTTP.


url: http://site url/_api/web/lists/GetByTitle('Test')/items(item id)
method: POST
body: { '__metadata': { 'type': 'SP.Data.TestListItem' }, 'Title': 'TestUpdated'}
headers:
// MS-OFBA protocol returns a cookie.
  Cookie: cookie
     X-RequestDigest = form digest value
    "IF-MATCH": etag or "*"
    "X-HTTP-Method":"MERGE",
    accept: "application/json;odata=verbose"
    content-type: "application/json;odata=verbose"
    content-length:length of post body

O exemplo a seguir mostra como excluir um item de lista.


url: http://site url/_api/web/lists/GetByTitle('Test')/items(item id)
method: POST
headers:
// MS-OFBA protocol returns a cookie.
  Cookie: cookie
     X-RequestDigest = form digest value
    "IF-MATCH": etag or "*"
    "X-HTTP-Method":"DELETE"

Para obter mais informações, confira Concluir operações básicas usando pontos de extremidade REST do SharePoint.

Confira também