SharePoint REST API - 确定REST端点URL
博客地址:http://blog.csdn.net/FoxDave
SharePoint REST端点URI的结构
在你能够通过REST访问SharePoint资源之前,首先你要做的就是找出对应的URI端点,如果你对Client API熟悉,有些时候也可以参考Client API去猜测构建,例如。
客户端对象模型的方法:
- List.GetByTitle(listname).GetItems()
对应的REST端点URI为:
http://server/site/_api/lists/getbytitle('listname')/items
然而为了遵守REST和OData标准,REST端点和Client API不总是一致的。下图展示了REST API的一般语法结构。
访问某些SharePoint资源的API跟此语法结构不太一致,它们是:
>需要复杂类型参数的方法
>静态方法和属性
确定SharePoint REST服务的端点
构建一个访问SharePoint资源的REST端点可以遵循下面的步骤:
1. 开始一段REST服务引用 http://server/site/_api
2. 指定适当的入口,如Web http://server/site/_api/web
3. 指定要访问的具体资源,这通常跟客户端对象模型是一致的 http://server/site/_api/web/lists/getbytitle('listname')
在你的URI端点中引用你的SharePoint REST服务
使用_api来表示SharePoint REST服务,REST服务是client.svc网络服务的一部分,REST是为了简化所以改用_api来表示。也就是说,http://server/site/_vti_bin/client.svc/web/lists和http://server/site/_api/web/lists这两种格式是都被支持的,但是推荐使用_api这种方式,因为URL有256个字符的限制。
指定SharePoint REST服务的入口
REST服务的主入口表示网站集合上下文对象(context)对应的网站,这跟ClientContext.Site和ClientContext.Web这两个属性一致。
如果要访问一个指定的网站集,使用http://server/site/_api/site。如果要访问一个指定的网站,使用http://server/site/_api/web。下表是一个对应关系。
Feature area | Access point |
---|---|
Site | http:// server/site/_api/site |
Web | http:// server/site/_api/web |
User Profile | http:// server/site/_api/SP.UserProfiles.PeopleManager |
Search | http:// server/site/_api/search |
访问你想要访问的指定资源
根据客户端对象模型来构建REST服务访问你想要访问的资源,如下表。
**Client object model API ** | REST endpoint |
---|---|
ClientContext.Web.Lists | http:// server/ site/_api/web/lists |
ClientContext.Web.Lists[guid] | http:// server/ site/_api/web/lists(' guid') |
ClientContext.Web.Lists.GetByTitle("Title") | http:// server/ site/_api/web/lists/getbytitle(' Title') |
在REST端点URI中指定参数
SharePoint扩展了OData规范使你能够使用括号来指定方法的参数和索引下标值。这防止了在URI中包含多个同名参数时潜在的不明确问题。例如http://server/site/_api/web/lists/getByTitle('Announcements')/fields/getByTitle('Description')和http://server/site/_api/web/lists('<guid>')/fields/getById('<guid>')。
如果参数是一个键值对,那么就用逗号分隔一下,如http://server/site/_api/web/getAvailableWebTemplates(lcid=1033, includeCrossLanguage=true)。
REST服务中的复杂参数类型
在客户端对象模型的一些方法中需要大数据作为参数,REST也提供了这种能力,但是不在URL上,而是通过POST操作。例如,ListCollection.Add方法需要Microsoft.SharePoint.Client.ListCreationInformation作为参数,需要构建如下的请求:
http://server/site/_api/web/lists/add
- { "d" : {
- "results": {
- "__metadata": {
- "type": "SP.ListCreationInformation"
- },
- "CustomSchemaXml": "…large payload…/",
- "Description": "desc",
- "DocumentTemplateType": "1",
- "TemplateType": "101",
- "Title": "Announcements"
- }
- }
- }
在REST服务请求中使用别名
你可以定义参数别名去请求SharePoint REST,直接用示例说明。
直接请求的样子:http://server/site/_api/web/applyWebTemplate("STS#0")
使用别名的样子:http://server/site/_api/web/applyWebTemplate(title=@template)?@template="STS#0"
需要注意一下这种方式不支持复杂的参数,即http://server/site/_api/userProfiles/People(7)/GetWorkplace(@address)?@address={"__metadata":{"type: "ODataDemo.Address"},"Street":"NE 228th", "City":"Sammamish","State":"WA","ZipCode":"98074","Country": "USA"}这样的是不被支持的。
在REST服务URI中使用静态方法和属性
构建一个静态方法或属性的REST服务URI,可以使用与ECMAScript对象模型中一致的API名字,如http://server/site/_api/SP.Utilities.Utility.getImageUrl('imageName')。需要注意的是这种方式不能作为参数来传递而只能直接调用,举个例子说明:
http://server/site/_api/SP.Utility.assetsLibrary/id是可以的,但是http://server/site/_api/getList(~SP.Utility/assetsLibrary/id)就不行。
本篇就讲到这里。
SharePoint REST API - 确定REST端点URL的更多相关文章
- Windows 商店应用中使用 SharePoint REST API
前面一篇我们介绍了 Office 365 REST API 的官方工具的使用,本篇我们来看一下 SharePoint REST API 本身的描述.结构和使用方法,以及一些使用经验. 首先来看看Sha ...
- [sharepoint]Rest api相关知识(转)
写在前面 最近又开始弄rest api了,通过sharepoint rest api获取站点信息,Items,fields非常方便,再结合OData查询,更是得心应手.这里记录学习的时候用到的知识点, ...
- SharePoint REST API - 基本操作(二)
博客地址:http://blog.csdn.net/FoxDave 上一节讲了SharePoint REST API的一些基本操作,本节将继续介绍一些关于SharePoint REST API的内容. ...
- SharePoint REST API - 概述
博客地址:http://blog.csdn.net/FoxDave SharePoint REST API不同于传统的Server Object Model和Client Object Model ...
- How to Call SharePoint 2013 API Service to Query The Lists
How to Call SharePoint 2013 API In SharePoint 2013, we can query the list by it owner service, then ...
- SharePoint REST api
http://msdn.microsoft.com/en-us/magazine/dn198245.aspx Understanding and Using the SharePoint 2013 R ...
- [sharepoint]rest api文档库文件上传,下载,拷贝,剪切,删除文件,创建文件夹,修改文件夹属性,删除文件夹,获取文档列表
写在前面 最近对文档库的知识点进行了整理,也就有了这篇文章,当时查找这些接口,并用在实践中,确实废了一些功夫,也为了让更多的人走更少的弯路. 系列文章 sharepoint环境安装过程中几点需要注意的 ...
- SharePoint REST API - 基本操作(一)
博客地址:http://blog.csdn.net/FoxDave 本文讲述如何应用SharePoint的REST接口完成基本的增删查改操作. 使用SharePoint客户端API和REST服务进 ...
- SharePoint JavaScript API in application pages
前言 最近,在SharePoint 应用程序页中写JavaScript API,进行一些数据交互.其实,很简单的事情却遇到了问题,记录一下,希望能对遇到类似问题的人以帮助. 引用JavaScript ...
随机推荐
- 微信小程序双击事件的绑定
- 小程序中this和that用法
微信小程序中,在wx.request({});方法调用成功或者失败之后,有时候会需要获取页面初始化数据data的情况,这个时候,如果使用,this.data来获取,会出现获取不到的情况,调试页面也会报 ...
- windows系统文件和linux系统文件
windows系统文件和linux系统文件 1.单用户操作系统和多用户操作系统 单用户操作系统:指一台计算机在同一时间 只能由一个用户 使用,一个用户独自享用系统的全部硬件和软件资源 Windows ...
- GPLT L2-004 这是二叉搜索树吗?
题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805070971912192 类似题目有FBI树 这两个题有个小 ...
- [Fiddler] ReadResponse() failed: The server did not return a complete response for this request. Server returned 0 bytes.
待解决 [Fiddler] ReadResponse() failed: The server did not return a complete response for this request. ...
- 第一阶段——站立会议总结DAY09
1.昨天做了什么:未做. 2.今天准备做什么:准备将之前讲的东西,要付诸实践.所以,为了使界面更加耐看,向微信,QQ这样的看齐,查一查个人中心界面中间的条条框框的实现代码,借鉴,并运用到自己的代码上. ...
- grep 和curl -d等命令 单引号里面既使用正则,又使用变量的方法
a='{"type":"d_log", "log_format":"d_log", "exclude" ...
- stl中的transform()注意其与for_each的不同点(有无返回值)
#include<iostream> using namespace std; #include"vector" #include"algorithm&quo ...
- Leetcode 1005. K 次取反后最大化的数组和
1005. K 次取反后最大化的数组和 显示英文描述 我的提交返回竞赛 用户通过次数377 用户尝试次数413 通过次数385 提交次数986 题目难度Easy 给定一个整数数组 A,我们只能用 ...
- 十八、Spring框架(AOP)
一.AOP(基于XML方式配置AOP) AOP(Aspect Oriented Program):面向切面编程.思想是:把功能分为核心业务功能和周边功能. 所谓核心业务功能:比如登录,增删改数据都叫做 ...