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,一经查实,立即删除!

相关文章

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

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

SQL SERVER 中identity

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

同步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()方法。简…

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.二次开发语音模块…

图片圆角

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…

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…

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

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

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

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

mme设备内部错误_华为拟安装“俄版安卓”;百度回应内部贪腐;Android Studio 3.5 RC2 发布 | 极客头条...

快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持。「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道。风里雨里,我们将每天为朋友们,播报最新鲜有料的新闻资讯&#x…

[spring mvc]Hello World入门

1.新建项目 File->New->Other,选择Dynamic web project&#xff1a; 项目建好之后&#xff0c;目录结构如下&#xff1a; 2.WEB-INF/web.xml 中配置 dispatcherServlet <?xml version"1.0" encoding"UTF-8"?> <web-app xmlns:xsi"ht…

Mysql日期函数使用大全

为什么80%的码农都做不了架构师&#xff1f;>>> 1.1 获得当前日期时间&#xff08;date time&#xff09;函数&#xff1a;now() 除了 now() 函数能获得当前的日期时间外&#xff0c;MySQL 中还有下面的函数&#xff1a; current_timestamp() current_timestamp …

input点击事件不能用_用js简单写一个计算器

嗨&#xff0c;大家好&#xff0c;今天给大家带来的是一个计算器首先要知道我们常用的计算器都有哪些按键&#xff0c;有0~9&#xff0c; , - , *, /&#xff0c;还有 和.&#xff0c;基本是这些按键&#xff0c;然后我们去创建一些按键。之后我们去设置样式&#xff0c;设置完…

php判断信用卡,php校验信用卡卡号代码

[php]代码库// This function will take a credit card number and check to make sure it// contains the right amount of digits and uses the Luhn Algorithm to// weed out made up numbersfunction validateCreditcard_number($credit_card_number){// Get the first dig…

python list长度_python的入门阶段 编程思维100题 我跟罗志祥没关系

"""python的入门阶段 编程思维100题&#xff08;适合学习了1周--1个月的新人&#xff09; 第五题&#xff1a;我跟罗志祥没关系 朋友圈大家每天都看&#xff0c;那用python如何实现它那&#xff1f; 很简单&#xff0c;朋友的信息&#xff08;名字&#xff0c;头…

Android ----中文Api 百度地图

Android中文API最新中文版 [复制链接] kupekupe当前离线在线时间1 小时e望0 点最后登录2011-2-17注册时间2011-2-17积分12阅读权限10UID1341171 主题 0 好友 12 积分No.1 开发小菜鸟 No.1 开发小菜鸟, 积分 12, 距离下一级还需 88 积分升级 12% 当前用户组为 No.1 开发小菜鸟 …

android之多媒体篇(一)

2019独角兽企业重金招聘Python工程师标准>>> Android 4.0.3(Api Level 15&#xff09;支持的多媒体格式。 注意&#xff1a;有些设备可能支持其他的文件格式。 1.Audio AAC LC/LTP、HE-AACv1(AAC)、AMR-NB、AMR-WB、MP3、MIDI、Ogg Vorbis、PCM/WAVE、FLAC&#…

java定时器_拾遗Timer定时器

一 Timer 介绍在开发中我们经常会遇到一些简单定时任务的需求&#xff0c;而不需要量级较重的定时任务就可以采取java定时器&#xff1b;java.util.Timer工具类中的Timer 是定时器&#xff0c;但定时任务写在java.util.TimerTask 中&#xff0c;由 Timer 执行 TimerTask &#…

逻辑门电路的知识点归纳

1.半导体二极管与MOS管的开关特性 二极管&#xff1a;正向导通&#xff0c;反向截止&#xff0c;但是要注意的是从反向截止到正向导通的时间极其短&#xff0c;但是从正向导通到反向截止要经过反向恢复&#xff08;电荷存储效应&#xff09;的过程&#xff0c;这个过程实际上就…