当前位置:首页 > Windows程序 > 正文

[sharepoint]Rest api相关知识(转)

2021-05-24 Windows程序

标签:

写在前面

最近又开始弄rest api了,通过sharepoint rest api获取站点信息,Items,fields非常方便,再结合OData查询,更是得心应手。这里记录学习的时候用到的知识点,以及查询的资料。

Sharepoint Rest 端点URI结构

在可以使用 REST 服务访问 SharePoint 资源之前,首先必须知道指向该资源的 URI 端点。只要可能,这些 REST 端点的 URI 就会准确地模仿 SharePoint 客户端对象模型中资源的 API 签名。例如:

客户端对象模型方法:            

List.GetByTitle(listname).GetItems()

REST 端点:            

(‘listname‘)/items            

但是,在某些情况下,为了遵守 REST 或 OData 约定,端点 URI 会不同于相应的客户端对象模型签名。

下图显示 SharePoint REST URI 的通用语法结构。

SharePoint REST URI 语法结构

技术分享

SharePoint 资源的部分端点偏离了这种语法结构:

需要复杂类型作为参数的方法。

如果对应的客户端对象模型方法要求复杂类型作为参数传递,则 REST 端点可能偏离此语法构造说明 REST 限制。

静态方法和属性。

REST 端点偏离代表静态方法和属性的 URI 的语法结构。

确定 SharePoint 2013 REST 服务端点

若要为 SharePoint 资源构造 REST 端点,请按照以下步骤执行操作:

从 REST 服务引用开始:

                

指定合适的入口点。例如:

                

从入口点导航到您要访问的特定资源。这包括为与客户端对象模型中的方法对应的端点指定参数。例如:

(‘listname‘)                

引用端点 URI 中的 SharePoint 2013 REST 服务

使用 _api 来表示端点 URI 中的 SharePoint 2013 REST 服务。REST 服务属于 client.svc Web 服务的一部分。但是,要尽早构造 REST URI 以及缩短基础 REST URI 路径,REST 服务使用 _api 将显式引用 client.svc Web 服务的需求抽象出来。REST 服务将承认并接受引用 client.svc Web 服务的 URI。例如,您可以使用 来代替 。但是,使用 _api 是首选惯例。URL 限制为 256 个字符,因此,使用 _api 可以缩短基础 URI,以留下更多的字符用于构造剩余 URL。

指定 SharePoint 2013 REST 服务的入口点

REST 服务的主要入口点表示网站集合以及指定上下文的网站。这样,这些入口点与客户端对象模型中的 ClientContext.Site 属性和 ClientContext.Web 属性对应。

要访问特定的网站集合,请使用以下构造:

              

要访问特定的网站,请使用以下构造:

              

其中 server 表示服务器的名称,site 表示特定网站的名称或路径。

/site 和 /web 外,REST 服务包括几个其他访问点,通过这些访问点,开发人员可导航至特定功能。下表列出了部分访问点。

功能区域

访问点


网站

 

server/site/_api/site

 

Web

 

server/site/_api/web

 

用户配置文件

 

server/site/_api/SP.UserProfiles.PeopleManager

 

搜索

 

server/site/_api/search

 

发布

 

server/site/_api/publishing

 

导航到您要访问的特定资源

从这里,通过遍历对象模型并使用用斜杠分隔的客户端对象模型中 API 的名称构造多个特定 REST 端点。下表显示客户端对象模型调用及等效 REST 端点示例。

客户端对象模型 API

REST 端点


ClientContext.Web.Lists

 

server/site/_api/web/lists

 

ClientContext.Web.Lists[guid]

 

server/site/_api/web/lists(‘guid’)

 

ClientContext.Web.Lists.GetByTitle("Title")

 

server/site/_api/web/lists/getbytitle(‘Title’)

 

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/70498.html