SharePoint REST API - REST請求導航的資料結構
部落格地址:http://blog.csdn.net/FoxDave
從一個既定的URL獲取其他SharePoint資源
當你用SharePoint REST服務進行開發的時候,你經常會從指定的一個SharePoint物件開始,但是卻想要訪問相關的其他資源,比如列表項所在的資料夾或文件庫的結構。例如,假如你想要建立一個Add-in來訪問文件庫中的文件。這個Add-in必須識別真正的SharePoint網站URL,當你這麼做的時候,Add-in能夠建立更多的請求來建立、更新或刪除相關的列表項或資源。
想要實現這個的話,你的Add-in需要如下資訊:
>包含想要訪問資源的網站集合網站相對URL
>一個能夠使你完成請求操作的表單摘要,HTTP請求動作如POST、PUT、MERGE和DELETE。
基本過程如下:
1. 在既定的URL使用/contextinfo操作來訪問SharePoint網站集地址,以如下的格式:
http://server/web/doclib/forms/_api/contextinfo
出於安全性的考慮,該操作只支援POST請求。
2. 通過/contextinfo操作返回的SPContextWebInformation物件屬性來訪問額外需要的資源。
可以嘗試下面的操作步驟:
1. 從一個既定的SharePoint列表項開始,如:http://site/web/doclib/myDocument.docx。
2. 去掉URL的最後一段,就相當於在訪問一個文件庫、資料夾或者列表:http://site/web/doclib/
3. 將/contextinfo加到URL後面,如:http://site/web/doclib/_api/contextinfo
4. 從請求的響應中獲取表單摘要和網站的完整URL。
5. 將_api加到網站URL後面。
6.用上面得到的這些內容去訪問其他你需要的資源。
如果你使用的是GET請求或者使用了一個有效的OAuth令牌,那麼你不需要傳遞表單摘要。
訪問父網站和子網站
當你使用服務端物件模型訪問你的網站結構時,可以使用SPWeb.ParentWeb和SPWeb.Webs屬性來訪問父網站和子網站。
與其相應的REST資源為web/parentweb和web/webs。但是不要返回網站物件的資源,因為REST服務依據OData標準,返回完整的網站屬性會使請求變得非常的低效。一般會返回一個WebInfo物件,該物件包含了網站的標量屬性而沒有關聯的屬性集合如欄位集合。
訪問資料夾結構
SharePoint REST服務不支援按照垂直級別訪問SharePoint的資料夾,需要通過Web.GetFolderByServerRelativeUrl來實現。
/_vti_bin/client.svc/web/lists/SharedDocuments/folder1/stuff/things/Recycle(不支援)
/_vti_bin/client.svc/web/GetFolderByServerRelativeUrl('SharedDocuments/folder1/stuff/things')/Recycle(支援)
SPContextWebInformation物件屬性
SPContextWebInformation Property | Description |
---|---|
webFullUrl | 獲取最近網站的ServerRelativeURL。 |
siteFullUrl | 獲取網站集中根網站的ServerRelativeURL。如果最近網站就是根網站,該屬性值跟webFullUrl相同。 |
formDigestValue | 獲取伺服器請求的表單摘要。 |
LibraryVersion | 獲取REST庫的當前版本。 |
SupportedSchemaVersions | 獲取支援的REST/CSOM庫的版本清單。 |
WebInfo property | Description |
---|---|
Created | Gets a value that specifies when the site was created. |
Description | Gets or sets the description for the site. |
Id | Gets a value that specifies the site identifier. |
Language | Gets a value that specifies the locale ID (LCID) for the language that is used on the site. |
LastItemModifiedDate | Gets a value that specifies when an item was last modified in the site. |
Title | Gets or sets the title for the site. |
WebTemplateId | Gets the identifier of the site template. |
相關文章
- elasticsearch常用請求介面Rest API示例ElasticsearchRESTAPI
- SpringMVC(2)-Rest請求風格SpringMVCREST
- 使用RxJava快取Rest請求RxJava快取REST
- Django REST framework的請求與響應DjangoRESTFramework
- rest apiRESTAPI
- GraphQL API vs REST APIAPIREST
- 在 .NET Core 中構建 REST APIRESTAPI
- Elasticsearch Java Low Level REST Client(執行請求)ElasticsearchJavaRESTclient
- Spark REST API & metricsSparkRESTAPI
- Elasticsearch(二)——Rest APIElasticsearchRESTAPI
- Django REST framework API 指南(20):後設資料DjangoRESTFrameworkAPI
- 探索Django REST框架構建強大的APIDjangoREST框架架構API
- 使用JBang構建Spring Boot Rest API教程Spring BootRESTAPI
- Quarkus入門:構建PetClinic REST API - Rafał BorowiecRESTAPI
- 在Qt5中使用Http Rest客戶端請求並解析Json資料QTHTTPREST客戶端JSON
- 補: Rest 風格請求處理的的內容補充(1)REST
- 用Java構建反應式REST API - Kalpa SenanayakeJavaRESTAPINaN
- Django REST framework API 指南(21):SchemasDjangoRESTFrameworkAPI
- Harbor配置Swagger遠端REST APISwaggerRESTAPI
- rest-api設計風格RESTAPI
- Django REST framework API 指南(6):路由DjangoRESTFrameworkAPI路由
- Django REST framework API 指南(7):解析DjangoRESTFrameworkAPI
- Django REST framework API 指南(8):渲染DjangoRESTFrameworkAPI
- Django REST framework API 指南(27):SettingsDjangoRESTFrameworkAPI
- Django REST framework API 指南(15):限流DjangoRESTFrameworkAPI
- Springboot中Rest風格請求對映如何開啟並使用Spring BootREST
- 影響rest api版本選擇的因素RESTAPI
- 使用Ollama部署本地LLM:構建AI REST API的簡易指南AIRESTAPI
- 使用SpringBoot構建REST服務-什麼是REST服務Spring BootREST
- 前端快取API請求資料前端快取API
- 到底什麼樣的 REST 才是最佳 REST?REST
- (16) SpringCloud-Eureka的REST API及API擴充套件SpringGCCloudRESTAPI套件
- 架構之:REST和HATEOAS架構REST
- 架構之:REST和RESTful架構REST
- Django REST framework API 指南(17):分頁DjangoRESTFrameworkAPI
- Django REST framework API 指南(18):版本控制DjangoRESTFrameworkAPI
- Elasticsearch Java High Level REST Client(Exists API)ElasticsearchJavaRESTclientAPI
- Elasticsearch Java High Level REST Client(Delete API)ElasticsearchJavaRESTclientdeleteAPI
- REST API簽名認證機制RESTAPI