如何通过Microsoft Graph API在SharePoint指定子文件夹中创建列表?
首先明确:SharePoint的列表(包括自定义列表、文档库)是站点级资源,无法直接嵌套在文档库的文件夹中(文件夹是文档库这种特殊列表的内容项,而非容器资源)。但可以通过以下两种方式实现你需要的“列表与Sub_folder_2关联”的效果:
方案1:创建站点级列表,通过自定义字段绑定目标文件夹
- 先使用常规接口创建站点级列表:
POST https://graph.microsoft.com/v1.0/sites/{site-id}/lists Content-Type: application/json { "displayName": "你的列表名称", "list": { "template": "genericList" } } - 为列表添加一个查找字段,关联到Documents文档库的文件夹:
- 先获取Documents文档库的ID:
GET https://graph.microsoft.com/v1.0/sites/{site-id}/lists?$filter=displayName eq 'Documents' - 然后向列表添加查找字段,指向该文档库的文件夹项:
POST https://graph.microsoft.com/v1.0/sites/{site-id}/lists/{list-id}/fields Content-Type: application/json { "name": "关联文件夹", "type": "Lookup", "lookup": { "listId": "{documents-library-id}", "columnName": "Title", "allowMultipleValues": false } }
- 先获取Documents文档库的ID:
- 后续添加列表项时,将
关联文件夹字段的值设置为Sub_folder_2的ID,即可实现列表与目标文件夹的绑定。
方案2:在目标文件夹所在的文档库中添加自定义视图(适配结构化内容展示需求)
如果你的需求是在Sub_folder_2中展示类似列表的结构化内容,可直接在Documents文档库中创建自定义视图,筛选仅显示该文件夹下的内容,并添加自定义列实现结构化管理:
- 获取Sub_folder_2的文件夹ID:
GET https://graph.microsoft.com/v1.0/sites/{site-id}/drives/{drive-id}/items/{folder-id}/children?$filter=name eq 'Sub_folder_2' - 向Documents文档库添加自定义视图,筛选该文件夹下的内容:
POST https://graph.microsoft.com/v1.0/sites/{site-id}/lists/{documents-library-id}/views Content-Type: application/json { "displayName": "Sub_folder_2专属视图", "viewType": "grid", "query": "<View><Query><Where><Eq><FieldRef Name='FileDirRef'/><Value Type='Text'>/sites/{site-id}/Documents/Sub_folder_1/Sub_folder_2</Value></Eq></Where></Query></View>" } - 访问该视图时,只会显示Sub_folder_2下的内容,相当于拥有该文件夹专属的“列表化展示”。
关于drives/items/<folder_id>路径操作失败的原因
Graph API中drives端点仅针对文档库的文件/文件夹操作,并没有提供在文件夹下创建列表的接口——因为列表不属于文件夹的子资源,所以该路径下无对应创建列表的POST方法。
内容的提问来源于stack exchange,提问作者user428602
相关产品推荐
相关产品推荐

