php 访问 sharepoint列表,SharePoint—用REST方式访问列表

REST的定义与作用

在SharePoint 2010中,基本上有如下几种数据访问方式: 服务器端对象模型

LINQ to SharePoint

Web Service

客户端对象模型

ADO.NET Data Service (REST协议)

ADO.NET Data Service (强类型)

REST是SharePoint中一种数据访问方式,这种方式只支持列表数据访问接口,位于_vti_bin目录下的的listdata.svc。

REST的特点及原理

REST协议的一个特点,就是可以把我们需要的操作都浓缩在一个URL中(比如通过:_vti_bin/listdata.svc/Test(3)就可以获取到Test这个列表中ID为3的那个条目的信息,当然也可以通过一些特殊的写法实现简单的查询、排序功能),并可以通过GET、POST、PUT、DELETE、MERGE这几种HTTP访问方式,来实现列表数据的增、删、查、改。

通过REST协议访问数据的原理如下图所示:

67914559_1.jpg

图 01

通过这种方式访问的时候,客户端使用JSON的格式把需要的数据通过某种HTTP方法发送至包含listdata.svc的Url地址上(如果是Get方法的话,就没有发送的数据),然后返回数据的时候,可以返回Xml格式(Atom协议),当然也可以返回JSON格式(如果不特别声明的话,默认使用Atom协议,也就是Xml格式)。

和客户端对象模型相同的是,我们通过Url,可以定义所需要返回的那些字段值,从而减少客户端和服务器端的数据传递大小。

REST数据访问常用语法

这里主要介绍GET方式访问数据的语法,即Url语法。

例如:

获取Test表所有数据

获取前n条数据 $top

http://localhost/_vti_bin/ListData.svc/Test?$top=n       //获取Test表中的前n条数据   n为大于0的正整数

根据某字段排序  $orderby 支持多字段排序,字段间以逗号隔开

http://localhost/_vti_bin/ListData.svc/Test?$orderby=PublishDate asc            //按PublishDate字段升序 支持asc/desc

按条件晒选 $filterhttp://localhost/_vti_bin/ListData.svc/Test?$filter=Id le 10                 //晒选Id小雨等于10的项目

REST支持的运算符

数字:Lt、Le、Gt、Ge、Eq、Ne

字符串:startsWith、substringof、Eq、Ne

日期时间:day()、month()、year()、hour()、minute()、second()

实现比较复杂的查询

http://localhost/_vti_bin/ListData.svc/Test

$select=*

&$orderby=PublishDate,Id desc

&$top=10

&$filter=Id Ge 3

//选择Test表所有可用字段Id大于等于3的项目中的前10条记录,并按照PublishDate字段、Id字段降序排列

REST语法注意事项

利用$select选择指定列的数据、$orderby按某字段排序、$filter晒选数据时,若字段为系统内置字段,则字段名称为当前语言环境下的字段名称。例如中文「标题」字段,不能写为Title。必须为「标题」。

用户自己添加的英文字段,字段名称首字母必须为大写。例如,新建字段命名为name,此字段作为url一部分时必须写为Name。

另外,若用中文当做Url的一部分,会发生异常,此时要先把中文字段编码,然后把编码后的字段名称变量拼接到Url中

例如:var createDate = encodeURIComponent('标题');

var url = '/_vti_bin/ListData.svc/Test?$select=*

&$orderby=' createDate ' asc

&$top=10&

$filter=Name ne 'bear''; 利用$filter晒选数据时,只能有一个晒选条件。

复杂查询时,拼接Url时,须按照$select->$orderby->$top->$filter的顺序。

REST的使用方法

本节只介绍Jquery ajax以get方式异步请求。如果不指定数据的请求格式,则REST默认返回数据格式为XML格式。若要返回格式为json,则指定ajax请求的dataType:’json’或contentType:’application/json’即可。

调用代码如下:

var createDate = encodeURIComponent('标题');

var url = '/_vti_bin/ListData.svc/Test?$select=*

&$orderby=' createDate ' asc

&$top=10&

$filter=Name ne 'bear'';

$.ajax({

type: 'get',

dataType: 'json',

url: url,

success: function (data) {

//result = data.d.results;  //查询所有列表项

result = data.d; //带条件查询 或$top=n

},

error: function (a, b, c) {

alert(a b c);

},

complete: function () {

callback(result);

}

});

注:当查询所有列表项为全部是result = data.d.results;

带$filter或者$top时,result = data.d

REST方式的弊端与妥协方式

问题:由于$filter只支持单个条件,所以对于复杂的查询要求可能无法直接达到要求。

妥协方式:先根据Url按某条件筛选,然后在ajax请求完成后对结果进行进一步加工处理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/266283.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python去除特殊字符_python去除BOM头\ufeff等特殊字符

1.\ufeff 字节顺序标记 去掉\ufeff,只需改一下编码就行,把UTF-8编码改成UTF-8-sig with open(file_path, moder, encodingUTF-8-sig) as f: s f.read() 2.\xa0 是不间断空白符 \xa0 是不间断空白符 我们通常所用的空格是 \x20 ,是在标准AS…

Vmware虚拟机三种网络模式配图详解

目录Vmware虚拟机三种网络模式详解Vmware虚拟机三种网络模式详解 具体的文字描述参见博文:https://www.cnblogs.com/linjiaxin/p/6476480.html Linux——Vmware虚拟机三种网络模式详解

SQL SERVER 中identity

SQL SERVER 中identity用法: 在数据库中, 常用的一个流水编号通常会使用 identity 栏位来进行设置, 这种编号的好处是一定不会重覆, 而且一定是唯一的, 这对table中的唯一值特性很重要, 通常用来做客户编号, 订单编号等功能, 以下介绍关于此种栏位常用方式及相关技…

php content-type: multipart/mixed,{error:invalid multipart format} 这是什么原因,我已经在HEADER中设置了Content-...

用CULR向七牛的API上传文件每次总是invalid multipart format但是我已经设置了Content-type:multipart/form-data呀function uploadFile($localPath, $remoteFileName, $headersarray()){global $conf;$remoteFileName trim($remoteFileName,/);$policy array(scope > $co…

【AGC005F】Many Easy Problems (NTT)

Description ​ 给你一棵\(~n~\)个点的树和一个整数\(~k~\)。设为\(~S~\)为树上某些点的集合,定义\(~f(S)~\)为最小的包含\(~S~\)的联通子图的大小。\(~n~\)个点选\(~k~\)个点一共有\(~C_n^k~\)种方案,请你求出所有方案的\(~f(S)~\)的和, 对\…

现在学python和java哪个好_java和python学习哪个未来发展前景更好?

原标题:java和python学习哪个未来发展前景更好? 学java和python哪个更好?这是现在大家热议的一个问题。 Python崛起这已经是一个不争的事实,并且已经成为人工智能时代的第一语言。Python的优势就是在任何方面都非常强大。号称胶水…

同步IO、异步IO、阻塞IO、非阻塞IO、复用IO

参考:同步IO 异步IO 作者:今天天气眞好 发布时间: 2021-04-19 09:42:29 网址:https://blog.csdn.net/qq_51118175/article/details/115857196?spm1001.2014.3001.5501 目录同步IO与异步IO的区别?1.POSIX2.IO模型阻塞I…

java线程之基础学习

java线程之基础学习总结 线程实现的两种方式:在java中可以有两种方式实现多线程操作,一种是继承Thread类,另外一种是实现Runnable接口。 继承Thread类Thread类是在java.lang包中定义的一个类只要继承Thread类,要覆写run()方法。简…

Scala 学习笔记

Scala 学习笔记 1 object func_exp {2 println("Welcome to the Scala worksheet") //> Welcome to the Scala worksheet3 def hello(name: String): String {4 s"Hello, ${name}"5 } …

python反编译exe_实战 Python3.7+64位 Exe 反编译

记得有年在上海弘连培训,其中一个逆向题就是关于python的Exe,当时就想着写个文档,后来因为忙就拖延了下来;这里补上,而且是大补上:奉献一个干货,网上没有(我没发现)Python3.7的反编译教程&#…

树莓派外设开发之接入语音模块

参考:树莓派接入语音模块控制继电器组 作者:糯米啊啊 发布时间: 2021-04-18 17:07:08 网址:https://blog.csdn.net/weixin_43732386/article/details/115834317?spm1001.2014.3001.5501 目录1.前言2.思路3.材料4.二次开发语音模块…

php程序里如何实现图片翻页,php图片上传代码一例-php 生成翻页链接(页码)列表的...-带多种分页方式的php分页类_169IT.COM...

Class PAGE {//类开始/********************************************************* $total 记录总数* $pageNum 每页显示的条数* $url 链接* $page->StartPage(显示分类统计,字符分类/数字分页,跳转);* $page->StartPage(true/false, true/false, true/f…

图片圆角

2019独角兽企业重金招聘Python工程师标准>>> //切图为圆角 public static Bitmap removeYuanjiao(Bitmap bitmap,int pixels){ int width bitmap.getWidth(); int height bitmap.getHeight(); Bitmap creBitmap Bitmap.createBitmap(width, height, android.grap…

Java和.NET(C#)的开发用到的技术对比总结

前言 声明:我指的是一般的Java和.NET(C#)的后台开发用到的技术总结 最近一直在应聘ing,楼主的项目还是.NET(C#)项目居多,Java项目相对少,在这也吐槽下,招.NET(C#)的公司实在是少的可怜,其实非常喜欢C#语法和…

python测试用例管理模块_python-selenium并发执行测试用例(方法一 各模块每一条并发执行)...

总执行代码: # codingutf-8 import unittest,os,time import HTMLTestRunner import threading import sys sys.path.append(C:/Users/Dell/Desktop/CARE/program)#使用编辑器,要指定当前目录,不然无法执行第20行代码 def creatsuite(): casedir [] lis…

全国计算机等级考试题库二级C操作题100套(第71套)

第71套: 给定程序中,函数fun的功能是:将形参s所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。 例如,s所指字符串为:asd123fgh5##43df&#xff0…

修改oracle用户资源限制,RHEL5中安装Oracle11gR2修改用户SHELL限制、环境配置、内核参数...

修改用户的SHELL的限制[rootlocalhost ~]# vi /etc/security/limits.conf# /etc/security/limits.conf##Each line describes a limit for a user in the form:## ##Where:# can be:# - an user name# - a group name, with group syntax#…

input 赋值_FPGA基础设计:Verilog行为级建模(过程赋值)

来源:CSDN文章使用逻辑门和连续赋值对电路建模,是相对详细的描述硬件的方法。使用过程块可以从更高层次的角度描述一个系统,称作行为级建模(behavirol modeling)。1. 过程赋值阻塞赋值和非阻塞赋值的区别都很熟悉了。这里记录两个特性。1.1 特…

本地配置DNS服务器(MAC版)

转自https://www.cnblogs.com/skylor/p/7483959.html作为一个前端开发者,会遇到使用cookie的情况,常见的如:登录,权限控制,视频播放,图形验证码等,这时候本地开发者在PC上会使用修改hosts的方式…

全国计算机等级考试题库二级C操作题100套(第72套)

第72套: 给定程序中,函数fun的功能是计算下式 例如,若形参e的值为1e-3,函数的返回值2.735678。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中…