中午日记

图片 1

眼前一篇大家介绍了 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 方法来删除数据。

几天后我又要像数年前一模一样去见一个破产女对象但能聊解心灵一时之慰的姑娘,她是宣称自己172的大星,我为着诚实起见,换掉了团结20岁时慷慨激昂的要命头像,因为明天油腻中年的大叔形象实在是有点欺骗对方。

      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 等。

他一样身高172,踩着高跟鞋和自我一般海拔,我这多少个的自卑感油可是生。

      下边大家以一定网站为例,来看一下 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

      (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) 特温的数码。

       (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
‘马克 吐温’,就是筛选 Author 等于 马克 吐温 的项,而 Author ne ‘Mark特温’,则是筛选不等的项。这是对准字符串的相比操作,而针对数字的则包括 
lt(小于)、le(小于等于)、gt(大于)、ge(大于等于)、eq(等于)和
ne(不等于)。还有针对性日期和时间的比较符,见表中解释。

       图片 3 

       最后还关系到一个授权的问题,如前方所说,远程访问都急需先授权才能访问资源。我们得以由此OAuth 授权的措施来形成应用授权和身份验证。将赢得的 OAuth
访问令牌插足到请求标头中。这里我们不做详细介绍了。关于
API本身的接纳过程,和任何 API
没什么差别,这里就不做详细介绍了。就是一个发出请求,拿到重回结果(Atom或JSON),然后解析结果的经过。

       这样我们就把 SharePoint REST API
的结合和大旨的拔取办法介绍完了,希望对我们在 Windows 商店应用中运用
SharePoint REST API 有所协理,谢谢。

       

 

 

 

 

     

发表评论

电子邮件地址不会被公开。 必填项已用*标注