Como Obter Itens de uma Lista no SharePoint Usando SPFx e HttpClient

Ao desenvolver soluções para o SharePoint Framework (SPFx), é comum precisar buscar itens de listas do SharePoint. Neste artigo, vamos explorar uma maneira eficiente de fazer isso utilizando HttpClient, disponível no pacote @microsoft/sp-http.

Código Fonte Explicado

Abaixo, temos um código TypeScript que busca itens de uma lista do SharePoint com base no título fornecido. Vamos analisá-lo passo a passo:

import { HttpClient, HttpClientResponse } from '@microsoft/sp-http';

export async function GetListItems(context: any, listTitle: string): Promise<any[]> {
    try {
        // Obtém a URL do site SharePoint atual
        const siteUrl = context.pageContext.web.absoluteUrl;
        
        // Monta a URL da API REST do SharePoint para buscar os itens da lista
        const apiUrl = `${siteUrl}/_api/web/lists/getbytitle('${listTitle}')/items`;
        console.log("Endereço da API:", apiUrl);

        // Faz a requisição GET para obter os itens da lista
        const response: HttpClientResponse = await context.httpClient.get(apiUrl, HttpClient.configurations.v1, {
            headers: {
                'Accept': 'application/json;odata=nometadata',  // Define o formato da resposta como JSON sem metadados
                'Content-Type': 'application/json;odata=nometadata'
            }
        });

        console.log("Status da resposta:", response.status);

        // Verifica se a requisição foi bem-sucedida
        if (!response.ok) {
            throw new Error(`Erro ao buscar itens: ${response.statusText}`);
        }

        // Converte a resposta para JSON
        const data = await response.json();
        console.log("Dados processados:", data);

        // Retorna os itens da lista, ou um array vazio caso não existam itens
        return data.value || [];  
    } catch (error) {
        // Captura e exibe erros no console
        console.error("Erro ao buscar itens da lista:", error);
        return [];
    }
}

Explicação Detalhada

  1. Importação de Módulos:
    • HttpClient e HttpClientResponse são importados de @microsoft/sp-http para permitir chamadas HTTP dentro do SharePoint Framework.
  2. Parâmetros da Função:
    • context: Representa o contexto do SPFx, contendo informações sobre o site atual.
    • listTitle: O nome da lista do SharePoint da qual queremos obter os itens.
  3. Montagem da URL da API:
    • Utilizamos context.pageContext.web.absoluteUrl para obter a URL do site atual.
    • Construímos a URL para acessar a API REST do SharePoint e buscar os itens da lista.
  4. Realização da Requisição:
    • Utilizamos context.httpClient.get para realizar uma requisição HTTP GET.
    • Definimos os cabeçalhos Accept e Content-Type para garantir que os dados retornados sejam no formato JSON e sem metadados desnecessários.
  5. Tratamento da Resposta:
    • O código verifica se a resposta da API foi bem-sucedida (response.ok).
    • Se houver erro, lança uma exceção com a mensagem apropriada.
    • Converte a resposta para JSON e retorna os itens obtidos.
  6. Tratamento de Erros:
    • Se houver falha na requisição, o erro será capturado e exibido no console.
    • A função retorna um array vazio caso ocorra qualquer problema.

Considerações Finais

Este método é uma abordagem eficiente para buscar itens de uma lista do SharePoint usando SPFx. No entanto, em cenários mais complexos, pode ser necessário lidar com paginação de resultados ou aplicar filtros para otimizar as buscas.

Se você deseja melhorar a performance e reduzir o volume de dados retornados, pode considerar o uso de $select e $filter na URL da API REST.

Edvaldo Guimrães Filho Avatar

Published by

Categories: