SharePoint REST API - 列表和列表项

简介: 博客地址:http://blog.csdn.net/FoxDave本篇主要讲述如何用SharePoint REST操作列表和列表项。阅读本篇时请先了解前面讲述的REST介绍和基本操作。

博客地址:http://blog.csdn.net/FoxDave

本篇主要讲述如何用SharePoint REST操作列表和列表项。阅读本篇时请先了解前面讲述的REST介绍和基本操作。

废话不多说了,下面开始。

用REST获取列表属性

当你知道一个列表的GUID时,你可以用下面的请求来获取这个列表对象。

url: http://site url/_api/web/lists(guid'list GUID'),
method: GET
Headers:
    Authorization: "Bearer " + accessToken
    accept: "application/json;odata=verbose" or "application/atom+xml"
如果你知道一个列表的标题,那么可以用下面的请求。

url: http://site url/_api/web/lists/GetByTitle('Test')
method: GET
Headers:
    Authorization: "Bearer " + accessToken
    accept: "application/json;odata=verbose" or "application/atom+xml"
下面是一个通过请求返回的XML结果示例,基本是跟API的属性对应的,就不做过多讲解了。

<content type="application/xml">
    <m:properties>
        <d:AllowContentTypes m:type="Edm.Boolean">true</d:AllowContentTypes> 
        <d:BaseTemplate m:type="Edm.Int32">100</d:BaseTemplate> 
        <d:BaseType m:type="Edm.Int32">0</d:BaseType> 
        <d:ContentTypesEnabled m:type="Edm.Boolean">false</d:ContentTypesEnabled> 
        <d:Created m:type="Edm.DateTime">2012-06-26T23:15:58Z</d:Created> 
        <d:DefaultContentApprovalWorkflowId m:type="Edm.Guid">00000000-0000-0000-0000-000000000000</d:DefaultContentApprovalWorkflowId> 
        <d:Description>A list created by Project Based Retention used to store Project Policy Items.</d:Description> 
        <d:Direction>none</d:Direction> 
        <d:DocumentTemplateUrl m:null="true" /> 
        <d:DraftVersionVisibility m:type="Edm.Int32">0</d:DraftVersionVisibility> 
        <d:EnableAttachments m:type="Edm.Boolean">true</d:EnableAttachments> 
        <d:EnableFolderCreation m:type="Edm.Boolean">false</d:EnableFolderCreation> 
        <d:EnableMinorVersions m:type="Edm.Boolean">false</d:EnableMinorVersions> 
        <d:EnableModeration m:type="Edm.Boolean">false</d:EnableModeration> 
        <d:EnableVersioning m:type="Edm.Boolean">false</d:EnableVersioning> 
        <d:EntityTypeName>ProjectPolicyItemList</d:EntityTypeName> 
        <d:ForceCheckout m:type="Edm.Boolean">false</d:ForceCheckout> 
        <d:HasExternalDataSource m:type="Edm.Boolean">false</d:HasExternalDataSource> 
        <d:Hidden m:type="Edm.Boolean">true</d:Hidden> 
        <d:Id m:type="Edm.Guid">74de3ff3-029c-42f9-bd2a-1e9463def69d</d:Id> 
        <d:ImageUrl>/_layouts/15/images/itgen.gif</d:ImageUrl> 
        <d:IrmEnabled m:type="Edm.Boolean">false</d:IrmEnabled> 
        <d:IrmExpire m:type="Edm.Boolean">false</d:IrmExpire> 
        <d:IrmReject m:type="Edm.Boolean">false</d:IrmReject> 
        <d:IsApplicationList m:type="Edm.Boolean">false</d:IsApplicationList> 
        <d:IsCatalog m:type="Edm.Boolean">false</d:IsCatalog> 
        <d:IsPrivate m:type="Edm.Boolean">false</d:IsPrivate> 
        <d:ItemCount m:type="Edm.Int32">0</d:ItemCount> 
        <d:LastItemDeletedDate m:type="Edm.DateTime">2012-06-26T23:15:58Z</d:LastItemDeletedDate> 
        <d:LastItemModifiedDate m:type="Edm.DateTime">2012-06-26T23:15:59Z</d:LastItemModifiedDate> 
        <d:ListItemEntityTypeFullName>SP.Data.ProjectPolicyItemListItem</d:ListItemEntityTypeFullName> 
        <d:MultipleDataList m:type="Edm.Boolean">false</d:MultipleDataList> 
        <d:NoCrawl m:type="Edm.Boolean">true</d:NoCrawl> 
        <d:ParentWebUrl>/</d:ParentWebUrl> 
        <d:ServerTemplateCanCreateFolders m:type="Edm.Boolean">true</d:ServerTemplateCanCreateFolders> 
        <d:TemplateFeatureId m:type="Edm.Guid">00bfea71-de22-43b2-a848-c05709900100</d:TemplateFeatureId> 
        <d:Title>Project Policy Item List</d:Title> 
    </m:properties>
  </content>
注意ListItemEntityTypeFullName这个属性,它重要的原因是当你需要创建或更新列表项时,必须传递该参数作为元数据metadata中的type属性。

使用REST操作列表

创建一个列表的请求如下所示。

url: http://site url/_api/web/lists
method: POST
body: { '__metadata': { 'type': 'SP.List' }, 'AllowContentTypes': true, 'BaseTemplate': 100,
 'ContentTypesEnabled': true, 'Description': 'My list description', 'Title': 'Test' }
Headers: 
    Authorization: "Bearer " + accessToken
    X-RequestDigest: form digest value
    accept: "application/json;odata=verbose"
    content-type: "application/json;odata=verbose"
    content-length:length of post body
下面的代码演示了如何通过MERGE方法更新列表。

url: http://site url/_api/web/lists(guid'list GUID')
method: POST
body: { '__metadata': { 'type': 'SP.List' }, 'Title': 'New title' }
Headers: 
    Authorization: "Bearer " + accessToken
    X-RequestDigest: form digest value
    IF-MATCH": etag or "*"
    X-HTTP-Method: MERGE,
    accept: "application/json;odata=verbose"
    content-type: "application/json;odata=verbose"
    content-length:length of post body
接下来的代码演示了如何向一个列表中添加自定义字段。

Url: url: http://site url/_api/web/lists(guid'list GUID')/Fields
Method:POST
Body: { '__metadata': { 'type': 'SP.Field' }, 'Title': 'field title', 'FieldTypeKind': FieldType value,'Required': 'true/false', 'EnforceUniqueValues': 'true/false','StaticName': 'field name'}
Headers: 
    Authorization: "Bearer " + accessToken
    X-RequestDigest: form digest value
    content-type: "application/json;odata=verbose"
    content-length:length of post body
接下来是如何删除一个列表。
url: http://site url/_api/web/lists(guid'list GUID')
method: POST
Headers: 
    Authorization: "Bearer " + accessToken
    X-RequestDigest: form digest value
    IF-MATCH: etag or "*"
    X-HTTP-Method: DELETE
使用REST操作列表项
下面的示例展示了如何获取列表中所有的列表项。

url: http://site url/_api/web/lists/GetByTitle('Test')/items
method: GET
headers:
    Authorization: "Bearer " + accessToken
    accept: "application/json;odata=verbose" or "application/atom+xml"
注意在查询列表项时,$skip需要改用$skiptoken。

下面的示例展示了如何通过列表项ID获取指定的列表项。

url: http://site url/_api/web/lists/GetByTitle('Test')/items(item id)
method: GET
headers:
    Authorization: "Bearer " + accessToken
    accept: "application/json;odata=verbose" or "application/atom+xml"
下面的XML是一个请求返回的示例。

<content type="application/xml">
<m:properties> 
<d:FileSystemObjectType m:type="Edm.Int32">0</d:FileSystemObjectType>
<d:Id m:type="Edm.Int32">1</d:Id>
<d:ID m:type="Edm.Int32">1</d:ID>
<d:ContentTypeId>0x010049564F321A0F0543BA8C6303316C8C0F</d:ContentTypeId>
<d:Title>an item</d:Title>
<d:Modified m:type="Edm.DateTime">2012-07-24T22:47:26Z</d:Modified>
<d:Created m:type="Edm.DateTime">2012-07-24T22:47:26Z</d:Created>
<d:AuthorId m:type="Edm.Int32">11</d:AuthorId>
<d:EditorId m:type="Edm.Int32">11</d:EditorId>
<d:OData__UIVersionString>1.0</d:OData__UIVersionString>
<d:Attachments m:type="Edm.Boolean">false</d:Attachments>
<d:GUID m:type="Edm.Guid">eb6850c5-9a30-4636-b282-234eda8b1057</d:GUID>
</m:properties>
</content>
下面的代码演示如何创建一个列表项。

url: http://site url/_api/web/lists/GetByTitle('Test')/items
method: POST
body: { '__metadata': { 'type': 'SP.Data.TestListItem' }, 'Title': 'Test'}
headers:
    Authorization: "Bearer " + accessToken
     X-RequestDigest: form digest value
    accept: "application/json;odata=verbose"
    content-type: "application/json;odata=verbose"
    content-length:length of post body
注意这里你需要知道上面提到的ListItemEntityTypeFullName值并把它作为type参数传递。
下面的代码展示了如何更新一个列表项。
url: http://site url/_api/web/lists/GetByTitle('Test')/items(item id)
method: POST
body: { '__metadata': { 'type': 'SP.Data.TestListItem' }, 'Title': 'TestUpdated'}
headers:
    Authorization: "Bearer " + accessToken
     X-RequestDigest: form digest value
    "IF-MATCH": etag or "*"
    "X-HTTP-Method":"MERGE",
    accept: "application/json;odata=verbose"
    content-type: "application/json;odata=verbose"
    content-length:length of post body
接下来是删除列表项。
url: http://site url/_api/web/lists/GetByTitle('Test')/items(item id)
method: POST
headers:
    Authorization: "Bearer " + accessToken
     X-RequestDigest: form digest value
    "IF-MATCH": etag or "*"
    "X-HTTP-Method":"DELETE"
另外说明一点,在用REST操作列表项时,如何需要考虑版本,可以使用ETag属性,具体可以到必应搜索了解一下,这里不做过多阐述了。
相关文章
|
2月前
|
数据采集 JSON API
唯品会商品列表数据接口指南(唯品会 API 系列)
唯品会商品列表数据接口助力电商数据采集与分析,支持按类别、价格、品牌等条件筛选商品。通过HTTP GET/POST请求,开发者可获取商品基本信息、价格、品牌及销量等数据,适用于业务拓展和竞品研究。Python示例代码展示了如何使用`requests`库调用该接口,设置参数并处理响应。
|
6天前
|
XML JSON 监控
深入研究:1688 商品列表 API 详解
1688商品列表API为电商数据分析、竞品调研等场景提供程序化数据获取方式。通过关键词、价格区间、销量范围及类目等条件筛选商品,返回商品标题、价格、销量等基本信息。支持HTTP GET/POST请求,响应格式为JSON或XML,助力业务分析与决策。
|
10天前
|
数据采集 搜索推荐 API
Python 原生爬虫教程:京东商品列表页面数据API
京东商品列表API是电商大数据分析的重要工具,支持开发者、商家和研究人员获取京东平台商品数据。通过关键词搜索、分类筛选、价格区间等条件,可返回多维度商品信息(如名称、价格、销量等),适用于市场调研与推荐系统开发。本文介绍其功能并提供Python请求示例。接口采用HTTP GET/POST方式,支持分页、排序等功能,满足多样化数据需求。
|
1月前
|
JSON 监控 API
1688商品列表API接口指南
1688 商品列表 API 可帮助开发者和商家获取商品基本信息(如 ID、名称、价格等)、支持筛选排序(类目、价格、销量等条件)、分页查询及指定店铺商品获取,便于商品管理与竞品分析。调用流程包括:注册账号创建应用以获取 App Key 和 App Secret、生成签名确保请求合法性、构造请求参数(含 app_key、sign 等)、发送 HTTP 请求并处理 JSON 响应数据。
94 19
|
3天前
|
JSON 供应链 API
深入研究:微店商品列表API接口详解
微店商品列表API接口支持开发者以编程方式获取微店平台的商品数据,适用于电商数据分析、商品展示等场景。请求方式为POST,需提供`method`和`access_token`等参数,可选参数包括页码、排序方式、商品状态及关键词等。返回数据为JSON格式,包含商品ID、标题、价格、库存和缩略图URL等信息。常见错误包括`access_token`无效或参数错误,需根据错误码调整请求。
|
1月前
|
JSON API 开发者
京东商品列表 API 接口全攻略
京东商品列表API接口是京东开放平台提供的开发者工具,支持关键词搜索、店铺ID指定和商品分类筛选等查询方式,实时获取商品基础及拓展信息。接口数据丰富、查询灵活、更新及时且安全可靠,适用于电商数据分析、比价应用开发等场景。Python调用示例展示了如何安装必要库、构造请求参数及签名、发送请求并处理响应,确保开发者能高效利用该接口。
67 11
|
1月前
|
JSON API 开发者
shopee商品列表API接口获取步骤
虾皮(Shopee)商品列表 API 接口用于获取平台商品信息,支持按店铺 ID、类目、关键词等筛选条件查询商品数据,包括商品基本信息、图片、描述等。接口具备灵活性、数据丰富及分页机制等特点,满足电商数据分析与管理需求。示例代码展示了通过 Python 请求 API 获取某店铺商品列表的过程,包含请求头设置、参数定义及异常处理等功能,便于开发者快速上手使用。
|
1月前
|
JSON 数据管理 Java
淘宝买家订单列表、订单详情、订单物流 API 接口全攻略
淘宝订单相关API接口是电商自动化的核心工具,提供订单数据管理和物流追踪功能。开发者可通过HTTP协议调用,支持Python、Java等语言,响应JSON格式数据。主要功能包括:订单列表查询、订单详情获取和物流轨迹追踪。申请流程:注册账号(c0b.cc/R4rbK2),创建应用并生成App Key,申请所需接口权限如taobao.trades.sold.get、taobao.trade.fullinfo.get等。
|
19天前
|
数据挖掘 开发者
1688API系列:1688商品列表数据接口指南
1688商品列表数据接口(1688.item_search)可满足电商数据分析与竞品调研需求,通过关键词搜索提取1688平台商品信息,如ID、标题、价格、销量等,支持分页设置。开发者可利用该接口获取数据,辅助业务决策。
|
1月前
|
供应链 API 开发者
1688商品列表API接口详解
1688是国内知名的批发采购平台,提供海量商品资源。开发者通过1688商品列表API可获取商品的名称、价格、销量等信息,支持构建电商数据分析工具、比价应用等。接口采用HTTP GET/POST请求,需提供关键词、页码、每页数量等必填参数,响应数据包含商品列表及总记录数。示例代码展示了如何使用Python进行请求和处理响应。供稿者:Taobaoapi2014。

热门文章

最新文章