Shantha Kumar T
Better way to handle SharePoint List Item CRUD Operations using Next-Level endpoints
SharePoint, as a powerful collaboration platform, offers a wide array of functionalities to manage data effectively. When it comes to manipulating list items, CRUD operations are fundamental. Traditionally, developers have relied on standard REST API endpoints for these operations. However, there exists a next level of SharePoint REST API integration that unlocks advanced capabilities, offering alternative endpoints for CRUD operations. Let’s dive into these advanced methods step by step.
Create List Item
Standard Endpoint
https://<tenant>.sharepoint.com/_api/web/lists/GetByTitle(‘ListName’)/items
Next-level Endpoint:
https://<tenant>.sharepoint.com/_api/web/lists/GetByTitle(‘ListName’) /AddValidateUpdateItemUsingPath
- This advanced method allows for creating list items not just at the root level but also within specific folders.
- In case of failure, the response includes detailed error messages specifying the problematic column.
Type | Standard Endpoint | Next-Level Endpoint |
Method | POST | POST |
Headers | Accept:application/json;odata=verbose Content-Type: application/json;odata=verbose |
Accept:application/json;odata=verbose Content-Type: application/json;odata=verbose |
Body |
{ "_metadata": { "type": "SP.Data.ListNameListItem" }, "Title": "First List Item" }
|
{ "listItemCreateInfo": { "__metadata": { "type": "SP.ListItemCreationInformationUsingPath" }, "FolderPath": { "__metadata": { "type": "SP.ResourcePath" }, "DecodedUrl": "/sites/sitename/Lists/ListName" } }, "formValues": [ { "FieldName": "Title", "FieldValue": "Sample Title" } ] } |
Read List Item
Standard Endpoint
https://<tenant>.sharepoint.com/_api/web/lists/GetByTitle(‘ListName’)/items(<ItemID>)
Next-level Endpoint:
https://<tenant>.sharepoint.com/sites/<sitename>/_api/web/lists/GetByTitle(‘ListName’) /RenderExtendedListFormData(itemId=2,formId='editform',mode='2',options=30,cutoffVersion=0)
- This endpoint not only retrieves list item properties, but also provides details on available columns, form structure and more.
Type | Standard Endpoint | Next-Level Endpoint |
Method | GET | POST |
Headers | Accept:application/json;odata=verbose Content-Type: application/json;odata=verbose |
Accept:application/json;odata=verbose Content-Type: application/json;odata=verbose |
Update List Item
Standard Endpoint:
https://<tenant>.sharepoint.com/_api/web/lists/GetByTitle(‘ListName’)/items(<ItemID>)
Next-Level Endpoint:
https://<tenant>.sharepoint.com/_api/web/lists/GetByTitle('ListName')/GetItemById(<ItemID>) /ValidateUpdateListItem()
- Utilize this endpoint to update specific properties of a list item identified by its ID.
- The
ValidateUpdateListItem
method ensures that updates are consistent and error-free. - When-ever error appear on updating the item, the response data throws error on specific field data
Type | Standard Endpoint | Next-Level Endpoint |
Method | POST | POST |
Headers | Accept:application/json;odata=verbose Content-Type: application/json;odata=verbose If-Match: {eTag or *} X-HTTP-Method: Merge |
Accept:application/json;odata=verbose Content-Type: application/json;odata=verbose |
Body |
{ "_metadata": { "type": "SP.Data.ListNameListItem" }, "Title": "Update First List Item" } |
{ "formValues": [ { "FieldName": "Title", "FieldValue": "Update Sample Title" } ] } |
Delete List Item
Standard Endpoint:
https://<tenant>.sharepoint.com/_api/web/lists/GetByTitle('ListName')/items(<ItemID>)
Next-Level Endpoint:
https://<tenant>.sharepoint.com/_api/web/lists/GetByTitle('ListName')/GetItemById(<ItemID>) /recycle
Type | Standard Endpoint | Next-Level Endpoint |
Method | POST | POST |
Headers | If-Match: {eTag or *} X-HTTP-Methiod: “Delete” |
- Removes the list item from the list or library and send the item to the recycle bin, allowing for potential recovery if needed.
By leveraging these next-level endpoints, developers can elevate their SharePoint development, enabling more precise control and enhanced functionality in managing list items.