Relate Document Library files with properties using REST API

Copper Contributor

I would like to grab Document Library files through the API, this works with this URL:

/_api/web/folders('DocLib')/Files

 

Will result in something like this:

CheckInComment:""
CheckOutType:2
ContentTag:"{B15D7491-63A1-446A-BACF-0082707CB916},7,6"
CustomizedPageStatus:0
ETag:""{B15D7491-63A1-446A-BACF-0082707CB916},7""
Exists:true
IrmEnabled:false
Length:"17008"
Level:1
LinkingUri:"https://contoso.sharepoint.com/sites/Projects/Template/DocLib/Some_Document.docx?d=wb15d749163a1446abacf0082707cb916"
LinkingUrl:"https://contoso.sharepoint.com/sites/Projects/Template/DocLib/Some_Document.docx?d=wb15d749163a1446abacf0082707cb916"
MajorVersion:3
MinorVersion:0
Name:"Some_Document.docx"
ServerRelativeUrl:"/sites/Projects/Template/DocLib/Some_Document.docx"
TimeCreated:"2017-07-25T15:00:17Z"
TimeLastModified:"2017-07-25T15:00:55Z"
Title:""
UIVersion:1536
UIVersionLabel:"3.0"
UniqueId:"b15d7491-63a1-446a-bacf-0082707cb916"
odata.editLink:"Web/GetFileByServerRelativePath(decodedurl='/sites/Projects/Template/DocLib/Some_Document.docx')"
odata.id:"https://contoso.sharepoint.com/sites/Projects/Template/_api/Web/GetFileByServerRelativePath(decodedurl='/sites/Projects/Template/DocLib/Some_Document.docx')"
odata.type:"SP.File"

To get the extra properties for this document we could request this URL:

/_api/lists/getByTitle('DocLib')/items

 

This will result in something like this:

AuthorId:6
CheckoutUserId:null
ContentTypeId:"0x010100AA49F65C177A0C4AB6AF8289767F788D"
Created:"2017-07-25T15:00:17Z"
EditorId:6
FileSystemObjectType:0
GUID:"39ab1464-fd3b-483f-bb13-e3a5ba30413d"
ID:3
Id:3
Modified:"2017-07-25T15:00:55Z"
OData__CopySource:null
OData__UIVersionString:"3.0"
Published:false
ServerRedirectedEmbedUri:"https://contoso.sharepoint.com/sites/Projects/Template/_layouts/15/WopiFrame.aspx?sourcedoc={b15d7491-63a1-446a-bacf-0082707cb916}&action=interactivepreview"
ServerRedirectedEmbedUrl:"https://contoso.sharepoint.com/sites/Projects/Template/_layouts/15/WopiFrame.aspx?sourcedoc={b15d7491-63a1-446a-bacf-0082707cb916}&action=interactivepreview"
Title:null
odata.editLink:"Web/Lists(guid'df824189-a6c5-4d9f-8256-5b388fe977d2')/Items(3)"
odata.etag:""5""
odata.id:"9bf44adb-560f-4659-a39b-362c0f3288be"
odata.type:"SP.Data.DocLibItem"

Note: The "Published" property is a custom one.

 

Now the question is, how are those records related or even beter, how could I fetch all this information at once?

 

The UniqueId from the 'files' request matches the GUID in the property 'ServerRedirectedEmbedUrl' of the items request. So I could get the related file like this _api/web/folders('DocLib')/Files?$filter=UniqueId eq guid'b15d7491-63a1-446a-bacf-0082707cb916', but I tought there should be a better way.

 

Regards,

Roel

0 Replies