如何使用 sharepoint 2013 rest 端点完成基本 *** 作

如何使用 sharepoint 2013 rest 端点完成基本 *** 作,第1张

您可以通过使用 SharePoint 2013 提供的表示性状态传输 (REST) 界面执行基本的创建、读取、更新和删除 (CRUD) *** 作。REST 界面公开所有的 SharePoint 实体和在其他 SharePoint 客户端 API 中可用的 *** 作。使用 REST 的优点之一是您不必添加对任何 SharePoint 2013 库或客户端程序集的引用。相反,您向适当的终结点发出 HTTP 请求来检索或更新SharePoint 实体,如网站、列表和列表项。请参阅开始使用 SharePoint 2013 REST 服务,它全面地介绍了SharePoint 2013 REST 界面及其体系结构。

使用 REST 处理列表和列表项 和使用 REST 处理文件夹和文件更加详细地说明了如何使用核心的 SharePoint 实体。请参阅 SharePoint 2013:使用应用程序中的 REST 执行基本数据访问 *** 作,它通过示例向您演示如何在使用 C# 编写的 ASP.NET Web 应用程序的上下文中执行许多这些 *** 作。

有关 SharePoint 2013 平台上可用的 API 集的更多详细信息,请参阅在 SharePoint 2013 中选择正确的 API 集。有关如何使用其他客户端 API 的信息,请参阅如何:使用 SharePoint 2013 中的 JavaScript 库代码完成基本 *** 作、如何:使用 SharePoint 2013 中的 JavaScript 库代码完成基本 *** 作和为 SharePoint 2013 生成移动应用程序。

SharePoint 2013 REST 服务中的 HTTP *** 作

SharePoint 2013 REST 服务中的终结点对应于 SharePoint 客户端对象模型中的类型和成员。通过使用 HTTP 请求,您可以使用这些 REST 终结点对 SharePoint 实体(例如列表和网站)执行典型的 CRUD(Create、Read、Update 和 Delete) *** 作。

通常,表示 Read 的端点映射到 HTTP GET 命令。表示更新 *** 作的端点映射到 HTTP POST 命令,而表示更新或插入 *** 作的端点则映射到 HTTP PUT 命令。

在 SharePoint 2013 中,使用 POST 可以创建注入列表和网站的工件。SharePoint 2013 REST 服务支持将包括对象定义的 POST 命令发送到表示集合的终结点。例如,您可以将 ATOM 中包括新列表定义的 POST 命令发送到以下 URL,以创建 SharePoint 列表:

http://<site url>/_api/web/lists

对于 POST *** 作,任何不需要的属性将设置为其默认值。如果您尝试在 POST *** 作过程中设置只读属性,则服务将返回异常。

使用 PUT、PATCH 和 MERGE *** 作可以更新现有 SharePoint 对象。任何表示对象属性 set *** 作的服务终结点均支持 PUT 请求和MERGE 请求。对于 MERGE 请求,设置属性是可选的;任何未显式设置的属性将保留其当前属性。但是,对于 PUT 命令,任何未显式设置的属性将设置为其默认属性。此外,如果您在使用 HTTP PUT 命令时未在对象更新中指定所有必需的属性,则 REST 服务将返回异常。

对某个特定终结点 URL 使用 HTTP DELETE 命令可删除该终结点表示的 SharePoint 对象。对于可循环的对象(如列表、文件和列表项),这将导致 Recycle *** 作。

使用 SharePoint 2013 REST 界面读取数据

若要使用 SharePoint 2013 内置的 REST 功能,请您使用 OData 标准(它对应于您要使用的客户端对象模型 API)构建 REST 样式的 HTTP 请求。每个 SharePoint 实体都在您的目标 SharePoint 2013 网站上的终结点上公开,其元数据由 XML 或 JSON 格式表示。您可以用任何一种语言(包括但不限于 JavaScript 和 C#)发出 HTTP 请求。

要从 REST 终结点读取信息,您必须知道该终结点的 URL 和在该终结点上公开的 SharePoint 实体的 OData 表示。例如,若要检索特定 SharePoint 网站中的所有列表,应向 http://<site url>/_api/web/lists 发出 GET 请求。您可以在浏览器中导航到该 URL 并查看返回的 XML。当您在代码中发出请求时,可以指定接收 XML 还是 JSON 形式的列表的 OData 表示。

以下 C# 代码代码演示了如何发出 GET 请求,该请求通过使用 JQuery 返回站点的所有列表的 JSON 表示。它还假定您有一个有效的 OAuth 访问令牌,存储在 accessToken 变量中。如果您从应用程序 Web 内部进行此调用(就像在 SharePoint 承载的应用程序中一样),则不需要访问令牌。请注意,您无法从浏览器客户端上运行的代码中获取访问令牌。访问令牌必须从服务器上运行的代码中获取。SharePoint 2013 相关应用程序的上下文令牌 OAuth 流和 SharePoint 2013 相关应用程序的身份验证代码 OAuth 流说明了如何获取访问令牌。

C#

HttpWebRequest endpointRequest =

(HttpWebRequest)HttpWebRequest.Create(

"http://<site url>/_api/web/lists")

endpointRequest.Method = "GET"

endpointRequest.Accept = "application/jsonodata=verbose"

endpointRequest.Headers.Add("Authorization",

"Bearer " + accessToken)

HttpWebResponse endpointResponse =

(HttpWebResponse)endpointRequest.GetResponse()

如果您使用 JavaScript 编写应用程序但使用 SharePoint 2013 跨域库,此请求看起来会有点不同。在这种情况下,您不需要提供访问令牌。以下代码演示如果您使用跨域库并要以 XML(而不是 JSON)格式接收列表的 OData 表示,此请求会是怎样的。(由于 Atom 是默认的响应格式,您无需包含 Accept 标头。)请参阅如何:使用跨域库从应用程序访问 SharePoint 2013 数据,了解有关使用跨域库的详细信息。

JavaScript

var executor = new SP.RequestExecutor(appweburl)

executor.executeAsync(

{

url:

appweburl +

"/_api/SP.AppContextSite(@target)/web/lists?@target='" +

hostweburl + "'",

method: "GET",

success: successHandler,

error: errorHandler

}

)

以下示例中的代码显示了如何使用 C# 请求网站中所有列表的 JSON 表示。它假定您有一个存储在 accessToken 变量中的 OAuth 访问令牌。

C#

HttpWebRequest endpointRequest = (HttpWebRequest)HttpWebRequest.Create(sharepointUrl.ToString() + "/_api/web/lists")

endpointRequest.Method = "GET"

endpointRequest.Accept = "application/jsonodata=verbose"

endpointRequest.Headers.Add("Authorization", "Bearer " + accessToken)

HttpWebResponse endpointResponse = (HttpWebResponse)endpointRequest.GetResponse()

获取没有返回资源的属性

当您检索资源时将返回多个属性值,但对于某些属性,您必须直接向属性终结点发送 GET 请求。这是显示 SharePoint 实体的属性的典型行为。

以下示例显示了如何通过将属性名称附加到资源端点来获取属性。示例从 File 资源获取 Author 属性的值。

http://<网站 url>/_api/web/getfilebyserverrelativeurl('/<文件夹名称>/<文件名称>')/作者

要获取 JSON 格式的结果,请加入一个设置为 "application/jsonodata=verbose" 的 Accept 标头。

通过使用 REST 界面写入数据

您可以通过构建发送到适当终结点的 REST 样式的 HTTP 请求来创建和更新 SharePoint 实体,就像您阅读数据一样。但是,一个关键的区别是您使用 POST 请求。当您更新实体时,您还通过将一个 PUT 或 MERGE HTTP 请求方法作为 X-HTTP-Method 键的值添加到您的请求标头,来传递该 HTTP 请求方法。MERGE 方法仅更新您指定的实体的属性,而 PUT 方法会将现有实体替换为您在 POST 的正文中提供的一个新实体。使用 DELETE 方法可删除实体。当您创建或更新实体时,您必须在 HTTP 请求的正文中提供您要创建或更改的实体的 OData 表示。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11341722.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存