Sharepoint前端 - Sharepoint站点开发 - 使用restfull API操作站点资源(转备查)

Sharepoint Team Site我们可以创建Site Pages,Site Assets,Document Library,List,Workflow等资源,基本的Web Parts和页面定制我们主要操作Site Pages和Site Assets,这些资源会存储在Sharepoint服务端,提供页面渲染,业务逻辑等代码。在应用的业务中,我们可以通过Restfull API对站点文档和数据表进行读取,展示来实现应用的需求。

一. Sharepoint List

1. 创建Sharepoint List

在Site Content面板,点击Create an App,选择Custom List,输入List 名称,该名字不可与已有List 名字重复,且是API 读取List数据的标识。

创建完成,在Site Content中,找到刚才新建的List,点击Settings,显示以下内容。

1.Web Address,可以通过这个Url查看你的数据表视图,同时可以用api的getbyurl获取表格数据,

2.我们可以在这里删除数据表,设置数据表权限等。 这里提一下,通过保存为模板并包含数据表内容,可以将当前数据表导入到其他Sharepoint站点;通过设置工作流,当数据表有更新时,结合task list,可以实现邮件通知等业务。

3.SP默认为一个List添加Title,Modified,Created,Created By,Modified By字段。点击create column可以添加自定义列。

4.输入列名,此时建议输入不带空格的名字,如果输入的是如Changed By这样的字段,SP会为该列设置一个列的没有语义,没有规律的唯一标识,比如htsd,如果输入ChangedBy,则默认使用该名称作为列标识,之后我们再去修改列名,这个内部标识也不会再变,修改的是List 视图显示的List Name。

5.如果Lookup类型,则改字段的值域与本站点的其他list的数据关联。

二. 使用Restfull API读取展示List

在Sharepoint Site Assets中添加项目需要的js和css,并在TEST.aspx中按路径引入,TEST.apsx便会按照css来布局,并执行js中的代码


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

//testlist.js

function mapMyTasks(){

    var showTasks = function(tasks){

        var listEle = document.createElement(‘ul‘);

        listEle.id = ‘my-tasks-container‘;

        listEle.style.listStyle = ‘none‘;

        listEle.style.fontSize = ‘18px‘;

        if(tasks instanceof Array){

//解析tasks 数组,并添加到一个ul,最后将其渲染到页面

            tasks.forEach(function(t,index){

                var taskEle = document.createElement(‘li‘);

                taskEle.innerHTML = (index+1) + ‘. Task Title:‘ + t.TaskTitle + ‘; Size:‘ + t.Size + ‘; SpentHours:‘ + t.SpentHours +‘; Dead Line:‘ + t.DeadLine;

                listEle.append(taskEle);

            });

        }

        document.querySelector(‘#sdContentsContainer‘).appendChild(listEle);

    };

    var getMyTasks = function()

    {

        var dfd = $.Deferred(),

            listName = ‘MyTasks‘,

//_spPageContextInfo.siteAbsoluteUrl 获取当前站点绝对地址.

//当前站点的list restfull API在_api/web/List/路径下,

//通过 listName获取List

            url = _spPageContextInfo.siteAbsoluteUrl + "/_api/web/Lists/getbytitle(‘" + listName + "‘)/items";

        $.ajax({

            url:url,

            method: "GET",

            dataType: "JSON",

            headers: {

//"accept": "application/JSON;odata=verbose",不可缺少,不然sharepoint api默认返回的是xml格式的数据

                "accept""application/JSON;odata=verbose"

            },

            success: function (data)

            {

                var finalData = data.d.results;

                if (finalData.length > 0)

                {

                    dfd.resolve(finalData);

                else

                {

                    dfd.resolve(null);

                }

            },

            error: function (data)

            {

                dfd.resolve(null);

            },

            failed: function (data)

            {

                dfd.resolve(null);

            },

            async: true

        });

        return dfd.promise();

    }

    getMyTasks().done(function(data){

        showTasks(data);

    });

}

mapMyTasks();

  

MyTasks List视图

显示在定制页面

三. List 增加行,更新行

3.1 添加item


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

//将复杂结构的数据,先用js对象表示.

var data = {

                ‘__metadata‘:

                    {

//每个List的item都有一个对应的type,我们可以通过postman获取到数据之后在其中一个item的节点中找到type字段

                        ‘type‘‘SP.Data.Resourcing_x0020_MyTasks_x0020_ListListItem‘

                    },

                ‘TaskSize‘:1,

                ‘TaskTitle‘‘Deployed Prod‘

            };

            $.ajax({

                url: requestListUrl,

                method: "POST",

                data: JSON.stringify(data),

                contentType: "application/json;odata=verbose",

                headers: {

//当前登录用户的会话标识,站点一次会话30分钟过期,X-RequestDigest时请求api的权限凭证

                    "X-RequestDigest": $("#__REQUESTDIGEST").val(),

                    "accept""application/json;odata=verbose",

                    "content-type""application/json;odata=verbose"

                },

                success: function (data) {

                    dfd.resolve({

                        id: data.d.ID,

                        etag: parseInt(data.d.__metadata.etag.replace(/"/g, ‘‘))

                    });

                },

                failed: function (xhr) {

                    dfd.resolve(null);

                },

                error: function (xhr) {

                    dfd.resolve(null);

                }

            });

  

3.2 更新item


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

var dfd = $.Deferred(),

            url = siteUrl + "/_api/web/Lists/getbytitle(‘Resourcing Requests‘)",

            body = String.format("{{‘__metadata‘:{{‘type‘:‘SP.Data.Resourcing_x0020_Request_x0020_ListListItem‘}},‘Details‘:‘{0}‘}}", escape(JSON.stringify(data)));

        $.ajax({

//通过item id标识要更新的行

            url: url + "/items(" + params.id + ")",

            method: "post",

//post方法传递body字符串,其json结构应与list字段对应

            data: body,

            headers: {

                "X-RequestDigest": $("#__REQUESTDIGEST").val(),

                "content-type""application/json;odata=verbose",

                "IF-MATCH""*",

//使用mergeMethod

                "X-HTTP-Method""MERGE"

            },

            success: function (data, error, xhr) {

                dfd.resolve(xhr.status);

            },

            error: function (xhr) {

                dfd.resolve(xhr.status);

            },

            failed: function (data) {

                dfd.resolve(null);

            }

        });

  

四. 相关链接

如何获取上传到sharepoint上的文件的信息,以及expand的使用

如何解决Sharepoint Digest 超时问题

备用,转自:https://www.cnblogs.com/wzcblogs/articles/6478322.html

原文地址:https://www.cnblogs.com/xdanny/p/11456287.html

时间: 2024-10-16 10:48:54

Sharepoint前端 - Sharepoint站点开发 - 使用restfull API操作站点资源(转备查)的相关文章

BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第1章节--SharePoint 2013 介绍 处理开发人员需求

BEGINNING SHAREPOINT? 2013 DEVELOPMENT 第1章节--SharePoint 2013 介绍 处理开发人员需求 SharePoint本质上是一个平台.你必须理解哪些平台功能,才知道SharePoint如何能帮助你(开发人员).当你探索并了解组成此平台的功能范围时,你会看到一些有趣而引人的机会出现在开发人员面前. 我们看一个实际例子.如你所知,一个业务生产平台意味着终端用户可以是他们更加协同,并在日常工作生活中更多产--SharePoint当然能够做到.它可以立刻

BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发人员工具 SharePoint中基于Web开发

BEGINNING SHAREPOINT? 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发人员工具 SharePoint中基于Web开发 之前提到过,定义SharePoint开发有多种方法.作为高级用户,你可能使用更多原生SharePoint功能在基于Web环境做开发.高级用户典型地在SharePoint站点有逐步上升的权限,并且能够完成以下任务: 创建和管理网站集与网站权限. 配置站点主题. 添加Apps到站点. 为网站中使用创建并部署多媒体. 配置和自定义

站点开发-日志-1

有一天看完一个纪录片.关于互联网的.忽然兴起,想自己也开发一个站点.但本人技术一般.工作以来做的事情非常杂,从開始的做打杂小弟,整理文档,接电话,改改小功能.到后面做0基础运维,维护一下数据.再到后面做java开发,一边拿着一本SSH的书,一边被经理叼杠,一边在写代码.再到后面发现除了百度之外.还有google这个工具.还有好多开源的东西.顿时认为自己是个井底之蛙. 如今个人了解到的.站点开发技术如.NET,java,php,python. 个人比較倾向于php做前端展示,java做业务api.

微信公众平台开发(103) JS API支付

本文介绍如何使用JS API支付接口完成微信支付. 一.JS API支付接口(getBrandWCPayRequest) 微信JS API只能在微信内置浏览器中使用,其他浏览器调用无效.微信提供getBrandWCPayRequest接口供商户前端网页调用,调用之前微信会鉴定商户支付权限,若商户具有调起支付的权限,则将开始支付流程.这里主要介绍支付前的接口调用规则,支付状态消息通知机制请参加下文.接口需要注意:所有传入参数都是字符串类型! getBrandWCPayRequest参数如表6-5所

环信Restfull API dotnetSDK

Easemob.Restfull4Net 环信Restfull API dotnet的封装 支持的.Net Framework版本:4.0 API地址:http://docs.easemob.com/start/100serverintegration 一.SDK的使用说明: 采用配置节点的形势来设置环信,且一次可以支持多个app进行调用,在数据处理上,全部采用强类型实体进行包装,异常处理全部数据错误日志,方便查询. 以下为配置节点的使用方法: 1.采用Section的形势配置app,这种方式有

app后端开发二:API接口文档工具

悲伤的历史 在进行app后端开发过程中,后端会提供出来很多的api接口供前端开发使用,为了让前端开发人员顺利使用,我们会写好一份文档,告诉他们这个接口你该用 GET 还是 POST 来访问,同时访问的时候该给我传递一些什么参数,以及正确的时候我会返回什么给你,已经返回的数据样式以及字段解释等等这些事情,我们都需要在文档中写好写清楚. 在 app后端开发一:基于swagger-ui构建api接口文档工具 这篇博客中,我写了 swagger-ui 的好处以及优势.但是在使用过程中,发现不够给力.我想

Web前端,HTML5开发,前端资源,前端网址,前端博客,前端框架整理 - 转

Web前端/H5开发,前端资源,前端网址,前端博客,前端框架整理 - 转 综合类 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end Stack v2.2 免费的编程中文书籍索引 前端书籍 前端免费书籍大全 前端知识体系 免费的编程中文书籍索引 智能社 - 精通JavaScript开发 重新介绍 JavaScript(JS 教程) 麻省理工学院公开课:计算机科学及编程导论 JavaScript中的this陷阱的最全收集--没有之一 JS

restFull api接口

RestFull api接口 前后端分离开发的接口规范 什么是RestFull 是目录比较流行的api设计规范 注:restfull api规范应用场景,前后端分离的项目中 数据接口的现场 例如: /users/999 获取ID为999的信息 /users/list  获取所有的用户信息 /users/add  打开添加的页面 /users/save 新增数据 /users/edit 打开修改的页面 /users/save 根据表单是否有主键的值判断是否有更新 /users/del/999  删

【Windows10 IoT开发系列】API 移植工具

原文:[Windows10 IoT开发系列]API 移植工具 Windows 10 IoT Core 中是否提供你的当前 Win32 应用程序或库所依赖的 API? 如果不提供,是否存在可使用的等效 API? 此工具可以为你回答这些问题,并协助你将你的当前 Win32 应用程序和库迁移到 Windows IoT Core. Windows 10 IoT 核心版 API 移植工具可在 ms-iot/iot-utilities github 存储库中找到.下载存储库 zip 并将 IoTAPIPor