前方一篇我们介绍了 Office 365 REST API
的合法工具的选择,本篇我们来看一下 SharePoint REST API
本身的叙述、结构和运用形式,以及部分采取经验。

第一来探视SharePoint REST API 的概述:

      REST API 服务是在 SharePoint 2013 中被引入的,官方认为 REST API
服务可以匹敌于现有的 SharePoint 客户端对象模型。开发人士可以运用其他协理REST Web 请求的技术(C#,javascript,java,oc 等等)以长途形式与
SharePoint 数据举行交互。这也就代表,开发人士可以接纳 REST
Web技术和业内开放数据协议(OData)语法从其 SharePoint
相关应用程序、解决方案和客户端应用程序执行 CRUD 操作。而针对性中长途 Web
或运动采用,必须先得到访问权限,才能利用 SharePoint 数据资源。

     在 REST API 出现以前,大家需要经过 client.svc 那些 WCF 服务来呼吁
SharePoint
的列表数据,而且仅限于获取数据。数据的改动并从未在那么些服务中显示。而通过
REST API,我们得以成功前边提到的 CRUD 操作:使用OData 标准协会可实现
REST 的 HTTP
请求,对应到相应的请求方法,就足以对该资源开展读取或操作了。例如使用 GET
方法得到数据,使用 POST 方法来创建数量,使用 PUT 或 MERGE
方法来更新数据,使用 DELETE 方法来删除数据。

      REST API 默认会再次回到 Atom
格式的数量,然则大家也足以遵照要求设定重回 JSON
格式的数码。我个人更爱好处理 JSON 格式,JSON 数据转换为 C#
的对象,有一个很棒的网站:http://json2csharp.com/。通过这个网站,我们得以把
JSON 数据直接转换为 C# 对象,节省了无数编制 C# 基础代码的日子。

接下去大家来看看 REST API 的布局重组:

      端点的基本URL是:https://server/site/_api ,它是兼备 SharePoint
REST API 的功底,其中 server 代表服务器的称号,site
代表一定网站的称呼或者路径。

     
倘诺要访问特定的网站集,URL是:https://server/site/\_api/site,如果要访问特定的网站,URL则是:https://server/site/\_api/web
。这二种是最常用的 API ,还有二种 API
能实现部分特定的职能,如:使用搜索服务:https://server/site/\_api/search,访问用户配置文件:http://server/site/_api/SP.UserProfiles.PeopleManager 等。

      下边大家以一定网站为例,来看一下 REST API
能完成哪些常见操作:

      (1)对列表和列表项的操作

       列表:

       URL:http://&lt;网站 URL>/web/lists(guid'<列表 ID>’) 或 http://&lt;网站 URL>/web/lists/getbytitle(‘title of
list’)

      
列表项集合:

       URL:http://&lt;网站 URL>/web/lists(guid'<列表 ID>’) /items 或 http://&lt;网站 URL>/web/lists/getbytitle(‘title of
list’)/items

     
指定 ID 的列表项:

      URL:http://&lt;网站 URL>/web/lists(guid'<列表 ID>’) /items(item id) 或 http://&lt;网站 URL>/web/lists/getbytitle(‘title of
list’)/items(item
id)

      
如上 API 地址所示,我们得以通过List 本身的 GUID 或者 Title
来取得List,或者List的项集合的数目。当需要向列表中插入新项时,大家需要利用列表项集合
API,使用 POST
方法插入数据。而需要修改列表中某一项时,则需要运用指定列表项 API,使用
MERGE 方法来更新数据。

      
而关乎到数码修改时,我们需要把措施类型,如 POST,MERGE
等作为X-HTTP_Method
键的值添加到请求标头中。而且亟需将呼吁窗体摘要值作为 X-RequestDigest
的值传递进入。该值的拿到情势是:向 http://网站URL/\_api/contextinfo
出殡所有空正文的 POST 请求,并在 contextinfo 终结点重返的 XML 中领到
d:FormDigestValue 节点的值。还有就是标头中的 IF-MATCH
键的值,需要赋值为列表或列表项的 etag 值。假使赋值为
“*”,则不会考虑并发问题。

      
另外关于数据操作是内需 POST 的始末:

      
更新时,必须带有 __metadata:type
和急需更新的字段。其他不需要改进的字段可以不投入。删除时,URL指向该条记录即可。添加时,URL指向记录集合,POST内容应涵盖__metadata:type 和需要插入的必填字段

      (2)对文本和文书夹的操作

       文件:

       URL:http://&lt;网站
URL>/_api/web/getfilebyserverrelativeurl(‘/<文件夹名称>/<文件名称>’)

       文件列表:

       URL:http://&lt;网站
URL>/_api/web/getfolderbyserverrelativeurl(‘/<文件夹名称>’)/files

       文件夹:

       URL:http://&lt;网站
URL>/_api/web/getfolderbyserverrelativeurl(‘/<文件夹名称>’)

       通过以上 API
操作,我们得以做到文件和文书夹的读取,上传和修改等操作。

       当需要向文档库插入文档时,URL
是:http://&lt;site
url>/_api/web/GetFolderByServerRelativeUrl(‘/Shared
Documents’)/Files/add(url=’a.txt’,overwrite=true),这样,大家就把文件以
a.txt 为寄放名称插入到了 Shared Documents
文档库中。而文档内容的上传过程是:文件读取为 Stream,放入 POST
内容中。文件还有此外众多中操作情势,如更新,签出,签入,删除等。

      (3)对用户、组和角色的操作

       组:

       URL:http://&lt;网站 URL>/_api/web/sitegroups(<组 ID>)

       用户:

       URL:http://&lt;网站
URL>/_api/web/siteusers(@v)?@v='<登录名>’

       角色:

       URL:http://&lt;网站
URL>/_api/web/roledefinitions(<角色定义
ID>)

      (4)对用户配置文件的操作

       URL:http://&lt;网站
url>/_api/sp.userprofiles.peoplemanager

      (5)对字段的操作

       URL:http://&lt;网站 url>/_api/web/fields(‘<字段 id>’) 或 http://&lt;网站 url>/_api/web/lists(guid'<列表 id>’)/fields(‘<字段 id>’)

       下边我们介绍了列表,文件夹等连串 API
的地点构造,接下去我们看看这一个请求地址中允许的询问参数都有咋样:       

       (1)$select 参数

       如 SQL 中 Select 的使用模式,这里的 $select
也是确定请求再次来到的结果中需要包含哪些字段,使用方法是:_api/web/lists/getByTitle(‘Books’)/items?$select=Author,Title,ISBN,这样我们就会在得到Books这多少个列表时,只取得作者,书名和ISBN六个有效字段。

       (2)$filter 参数

       如 SQL 中 Where 的利用方法,这里的 $filter
是用来筛选数据的筛选标准,使用形式是:_api/web/lists/getByTitle(‘Books’)/items?$filter=Author
eq ‘马克 吐温(Twain)’,这样我们就能取到 Books 列表中,Author 为 马克(Mark) 特温(Twain)的数据。

       (3)$expand 参数

      
那个参数用于指定再次来到联接列表中的哪些投射字段。使用方法是:_api/web/lists/getByTitle(‘Books’)/items?$select=Title,PublishedBy/Name&$expand=PublishedBy,这里的炫耀字段是
PublishedBy。

       (4)$top 参数

      
这多少个参数用户指定重返结果集中的前N项,使用模式是:_api/web/lists/getByTitle(‘Books’)/items?$top=2,这样大家就会回到这么些结果集中的前两项(如不足两项则赶回全体数码)。

       (5)$skip 参数

      
那个参数用于在结果集中跳过指定数量的项,而回到剩余的项。使用方法是:_api/web/lists/getByTitle(‘Books’)/items?$skip=2,这样大家就会在重返结果中跳过前两项而回到另外的项,如结果不足两项,则赶回空结果集。

       (6)$orderby 参数

       那一个参数用于对结果集举行排序,如 SQL
中选用方法,分为升序和降序二种方法,以 asc 和 desc
关键字来标识。使用方法是:_api/web/lists/getByTitle(‘Books’)/items?$orderby=ID
desc。这样我们再次来到的结果集,就会以 ID 为正式来降序排列。 

       下面那张表,涵盖了 SharePoint REST API
中几乎拥有的查询条件和数字、字符等的相比关键字。例如 $filter=Author eq
‘马克(Mark) 吐温’,就是筛选 Author 等于 马克 特温(Twain) 的项,而 Author ne ‘马克(Mark)吐温(Twain)’,则是筛选不等的项。那是本着字符串的比较操作,而针对性数字的则囊括 
lt(小于)、le(小于等于)、gt(大于)、ge(大于等于)、eq(等于)和
ne(不对等)。还有针对日期和岁月的可比符,见表中解释。

       XML 1 

       最后还关系到一个授权的问题,如前方所说,远程访问都急需先授权才能访问资源。我们可以通过
OAuth 授权的法子来完成应用授权和身份验证。将获取的 OAuth
访问令牌参预到请求标头中。这里我们不做详细介绍了。关于
API本身的利用过程,和任何 API
没什么差异,这里就不做详细介绍了。就是一个发出请求,得到重返结果(Atom或JSON),然后解析结果的长河。

       这样我们就把 SharePoint REST API
的组成和骨干的使用办法介绍完了,希望对我们在 Windows 商店应用中利用
SharePoint REST API 有所帮衬,谢谢。

       

 

 

 

 

     

相关文章

网站地图xml地图