连接到 SharePoint API 您所在的位置:网站首页 moss官网怎么打不开 连接到 SharePoint API

连接到 SharePoint API

2024-07-13 13:47| 来源: 网络整理| 查看: 265

连接到 SharePoint API 项目03/21/2023

在 SharePoint 框架解决方案中,你可能希望与存储在 SharePoint 中的数据进行交互。 SharePoint 提供了一组丰富的 API,你可以通过各种方式使用它们。 本文概述了你拥有的选项、它们的工作方式及其优缺点。

使用 SPHttpClient 连接到 SharePoint API

SharePoint 框架提供了可用于连接到 SharePoint REST API 的 SPHttpClient。 Web 部件/扩展上下文中提供了一个可立即使用的 SPHttpClient 实例,你可以使用它来执行各种 Web 请求。 以下代码段显示如何使用 SPHttpClient 检索当前网站的标题:

this.context.spHttpClient .get(`${this.context.pageContext.web.absoluteUrl}/_api/web?$select=Title`, SPHttpClient.configurations.v1) .then((res: SPHttpClientResponse): Promise => { return res.json(); }) .then((web: {Title: string}): void => { console.log(web.Title); });

SPHttpClient 提供了用于执行最常见 Web 请求的基本功能。 它还允许通过(例如,指定请求标头)来配置请求。 例如,如果要在不检索元数据的情况下发出 Web 请求,则可以使用以下代码:

this.context.spHttpClient .get(`${this.context.pageContext.web.absoluteUrl}/_api/web?$select=Title`, SPHttpClient.configurations.v1, { headers: [ ['accept', 'application/json;odata.metadata=none'] ] }) .then((res: SPHttpClientResponse): Promise => { return res.json(); }) .then((web: { Title: string }): void => { console.log(web.Title); }); 使用 SPHttpClient 的注意事项

使用 SPHttpClient 时,你应考虑一些事项。

OData v4.0

默认情况下,SPHttpClient 使用 OData v4 规范,该规范要求使用 odata.metadata 而不是 odata 来控制响应元数据。 如果使用 odata directive in OData v4 模式,则会出现错误,如:HTTP 标头 ACCEPT 缺失或其值无效。 通过将请求标头设置为空值,可以将 SPHttpClient 设置为 odata-version OData v3.0 模式:

this.context.spHttpClient .get(`${this.context.pageContext.web.absoluteUrl}/_api/web?$select=Title`, SPHttpClient.configurations.v1, { headers: [ ['accept', 'application/json;odata=nometadata'], ['odata-version', ''] ] }) .then((res: SPHttpClientResponse): Promise => { return res.json(); }) .then((web: { Title: string }): void => { console.log(web.Title); }); 身份验证 cookie

在 SharePoint 框架中,有许多用于执行 Web 请求的类。 其中的两个类为 SPHttpClient 和 HttpClient。 SPHttpClient 与 HttpClient 之间的区别之一是 SPHttpClient 在发出 Web 请求时包含身份验证 cookie。 由于 SharePoint API 不是匿名的,因此你需要提供身份验证信息,否则你将收到“401 未经授权”的响应。 由于 HttpClient 在其请求中不包含身份验证 cookie,因此如果你使用它来调用 SharePoint REST API,则你的请求将失败并出现“401 未经授权”响应。

SharePoint 框架的一部分

SPHttpClient 是 SharePoint 框架的一部分,不需要任何附加依赖项即可开始使用它。 它已在页面上提供,这就是为什么使用它不会在运行时导致额外的性能开销。

原始 REST 查询容易出错

SPHttpClient 为与 SharePoint REST API 的通信提供基本支持。 如果你的应用程序需要更复杂的 GET 请求、POST 请求或使用更高级的功能(如批处理),你很快就会发现使用 SPHttpClient 很麻烦并且容易出错。 在这种情况下,你应该考虑使用替代方法,例如 PnPjs 库,它为你提供了一个可以通过 TypeScript 来验证正确性的流畅 API。

使用 PnPjs 连接到 SharePoint

PnPjs 是用于和 SharePoint 与 Microsoft 365 进行通信的开放源代码 JavaScript 库。 它提供了一个流畅的 API,允许你以类型安全的方式轻松使用 SharePoint 和 Microsoft 365 REST API。 要使用 PnPjs 检索当前网站的标题,你需要执行以下代码:

const web = await sp.web .select('Title') .get(); console.log(web.Title);

注意

PnPJS 是一种开源解决方案,其中包含为其提供支持的活动社区。 没有用于 Microsoft 开放源代码工具支持的 SLA。

请注意与 SharePoint 框架 SPHttpClient 相比的代码冗长程度以及所有请求元素(要检索的属性名称除外)的强类型程度,这可以降低运行时错误的风险。

有关如何在 SharePoint 框架中设置和使用 PnPjs 的详细信息,请参阅位于 https://pnp.github.io/pnpjs/ 的 PnPjs 文档。

使用 PnPjs 的注意事项

在决定是否应该使用 PnPjs 时,你应考虑以下注意事项。

原始 REST 查询容易出错

使用 SPHttpClient 发出原始 REST 请求很容易出错。 特别是,当你的应用程序需要执行 POST 查询或者你希望使用某些更高级的功能(如请求批处理)时,撰写正确的请求并解析响应将非常麻烦。 更不用说,验证请求是否正确的唯一方法是在浏览器中运行代码。 借助 PnPjs,你能够以类型安全的方式与 SharePoint API 进行通信,并轻松使用 SharePoint API 的高级功能,这让你能够专注于构建应用程序而不是测试其请求。

开放源代码项目

PnPjs 是由 SharePoint 社区管理一个开放源代码项目。 在你的解决方案中没有关于使用 PnPjs 的 SLA,并且 Microsoft 支持部门不会帮助你解决由 PnPjs 引起的任何可能的问题。 也就是说,PnPjs 正在积极开发中,而社区可以快速响应所有提交的问题。

附加依赖项

PnPjs 是一种附加依赖项,你需要将其添加到项目中并随着时间的推移进行管理。 你需要跟踪其更新并在必要时升级项目。 PnPjs 背后的社区会定期传达当前工作的状态、即将发布的版本以及升级到新版本的影响(如果有)。

额外有效负载

PnPjs 提供了一组丰富功能,用于与 SharePoint API 进行通信。 该库支持选择性导入,因此借助精心设计,可以减轻对捆绑包大小的总体影响。 要了解详细信息,请参阅位于 https://pnp.github.io/pnpjs/ 的文档。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有