Partilhar via


Práticas recomendadas para trabalhar com a API do OneNote no Microsoft Graph

Este artigo fornece recomendações para trabalhar com APIs do OneNote no Microsoft Graph. Estas recomendações baseiam-se em respostas a perguntas comuns sobre o Microsoft Q&A.

Use $select para selecionar o conjunto mínimo de propriedades de que você precisa

Quando você consulta um recurso (por exemplo, seções em um bloco de anotações), faz uma solicitação semelhante à seguinte.

GET ~/notebooks/{id}/sections

Este pedido obtém todas as propriedades das secções. No entanto, você pode não precisar de todas as propriedades. Você pode usar o parâmetro de consulta $select para retornar apenas as propriedades desejadas, conforme mostrado no exemplo a seguir.

GET ~/notebooks/{id}/sections?$select=id,displayName

A mesma abordagem se aplica a outras APIs do OneNote.

Use $expand em vez de várias chamadas à API

Suponha que você queira recuperar todos os blocos de anotações, seções e grupos de seções do usuário em uma exibição hierárquica. Você pode fazer isso seguindo este procedimento:

  • Chamar GET ~/notebooks para obter a lista de blocos de anotações.

  • Para cada bloco de anotações recuperado, chame GET ~/notebooks/{notebookId}/sections para recuperar a lista de seções.

  • Para cada bloco de anotações recuperado, chame GET ~/notebooks/{notebookId}/sectionGroups para recuperar a lista de grupos de seções.

  • Opcionalmente, iterar de forma repetida em grupos de seções.

Esta abordagem funcionará (com algumas viagens de ida e volta sequenciais adicionais ao serviço); no entanto, uma abordagem melhor é utilizar o $expand parâmetro de consulta.

GET ~/notebooks?$expand=sections,sectionGroups($expand=sections)

Esta abordagem produz os mesmos resultados numa ida e volta de rede, com melhor desempenho.

Ao obter todas as páginas de um usuário, faça isso para cada seção separadamente

O Microsoft Graph expõe um ponto final para obter todas as páginas; no entanto, não recomendamos a utilização deste ponto final para obter todas as páginas às quais o utilizador tem acesso. Quando o utilizador tem demasiadas secções e é feita uma tentativa de obter todas as páginas, a chamada resulta num código 400 de estado HTTP e na seguinte mensagem: "O número máximo de secções foi excedido para este pedido. Para obter páginas para contas com um número elevado de secções, recomendamos que obtenha páginas para uma secção de cada vez." Para obter mais informações sobre este código de erro, consulte Códigos de erro do OneNote.

Para obter todas as páginas a que um utilizador tem acesso, a melhor prática é fazer chamadas separadas para obter as páginas de cada secção.

Por exemplo, em vez de usar essa chamada (essa API é paginada; portanto, você não poderá buscar todas as páginas de uma só vez):

GET ~/pages

É melhor utilizar a seguinte chamada várias vezes (especialmente se não precisar de todas as secções):

GET ~/sections/{id}/pages

Ao obter metadados de página, substitua a ordenação padrão lastModifiedDateTime. É mais rápido obter páginas quando não tem de as ordenar por lastModifiedDateTime. Para fazer isso, você pode classificar por qualquer outra propriedade; por exemplo:

GET ~/sections/{id}/pages?$select=id,title,createdDateTime&$orderby=createdDateTime