Add SharePoint Embedded sample queries#1501
Add SharePoint Embedded sample queries#1501marcwindle wants to merge 4 commits intomicrosoftgraph:masterfrom
Conversation
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Adds a new “SharePoint Embedded” category to Graph Explorer sample queries and includes common container, permission, column, and drive-item operations.
Changes:
- Introduces 11 new SharePoint Embedded sample queries (containers, permissions, columns, drive items).
- Adds request bodies and headers for POST operations.
- Positions the new category alphabetically near existing SharePoint-related samples.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| "category": "SharePoint Embedded", | ||
| "method": "GET", | ||
| "humanName": "list containers", | ||
| "requestUrl": "/v1.0/storage/fileStorage/containers?$filter=containerTypeId eq {containerTypeId}", |
There was a problem hiding this comment.
The requestUrl contains unencoded spaces in the OData $filter expression, which makes the URL invalid in many clients and can break request execution. Encode the spaces (e.g., %20) in the query string so the requestUrl is a valid URL.
| "requestUrl": "/v1.0/storage/fileStorage/containers?$filter=containerTypeId eq {containerTypeId}", | |
| "requestUrl": "/v1.0/storage/fileStorage/containers?$filter=containerTypeId%20eq%20{containerTypeId}", |
| "category": "SharePoint Embedded", | ||
| "method": "GET", | ||
| "humanName": "list items in a container", | ||
| "requestUrl": "/v1.0/drives/{containerId}/items/root/children", |
There was a problem hiding this comment.
This drive children listing path is incorrect: items/root/children is not a valid pattern for Microsoft Graph Drive APIs. The supported pattern for root children is /drives/{driveId}/root/children (or /drives/{driveId}/items/{itemId}/children for a specific folder). Update the URL accordingly.
| "requestUrl": "/v1.0/drives/{containerId}/items/root/children", | |
| "requestUrl": "/v1.0/drives/{containerId}/root/children", |
There was a problem hiding this comment.
This is a valid comment, just don't have permissions to apply suggestions
| "headers": [ | ||
| { | ||
| "name": "Content-type", | ||
| "value": "application/json" | ||
| } | ||
| ], |
There was a problem hiding this comment.
Header name casing is inconsistent (Content-type here vs Content-Type elsewhere in the same PR). While HTTP header names are case-insensitive, tooling/UI code sometimes does exact string comparisons. Use a consistent header name (prefer Content-Type) across all samples.
| "headers": [ | ||
| { | ||
| "name": "Content-type", | ||
| "value": "application/json" | ||
| } | ||
| ], |
There was a problem hiding this comment.
Same inconsistency as above: align this header name casing with the other samples (Content-Type) to avoid brittle behavior in clients that treat header names as case-sensitive.
| "category": "SharePoint Embedded", | ||
| "method": "POST", | ||
| "humanName": "create a folder in a container", | ||
| "requestUrl": "/v1.0/drives/{containerId}/root/children", |
There was a problem hiding this comment.
The placeholder {containerId} is used for /storage/fileStorage/containers/{containerId} and also for /drives/{...} endpoints. In Graph, a fileStorage container identifier is not necessarily the same as a drive identifier, so this placeholder is ambiguous and can mislead users. Consider using {driveId} for /drives/... samples (and keep {containerId} for /storage/fileStorage/containers/...) to make the required identifiers unambiguous.
There was a problem hiding this comment.
Actually, in Graph the identifier for fileStorageContainer is indeed always a drive identifier.
| "category": "SharePoint Embedded", | ||
| "method": "GET", | ||
| "humanName": "get an item in a container", | ||
| "requestUrl": "/v1.0/drives/{containerId}/items/{itemId}", |
There was a problem hiding this comment.
The placeholder {containerId} is used for /storage/fileStorage/containers/{containerId} and also for /drives/{...} endpoints. In Graph, a fileStorage container identifier is not necessarily the same as a drive identifier, so this placeholder is ambiguous and can mislead users. Consider using {driveId} for /drives/... samples (and keep {containerId} for /storage/fileStorage/containers/...) to make the required identifiers unambiguous.
| "value": "application/json" | ||
| } | ||
| ], | ||
| "postBody": "{\r\n \"roles\": [\"writer\"],\r\n \"grantedToV2\": {\r\n \"user\": {\r\n \"userPrincipalName\": \"{userEmail}\"\r\n }\r\n }\r\n}", |
There was a problem hiding this comment.
| "postBody": "{\r\n \"roles\": [\"writer\"],\r\n \"grantedToV2\": {\r\n \"user\": {\r\n \"userPrincipalName\": \"{userEmail}\"\r\n }\r\n }\r\n}", | |
| "postBody": "{\r\n \"roles\": [\"writer\"],\r\n \"grantedToV2\": {\r\n \"user\": {\r\n \"id\": \"{userObjectId}\"\r\n }\r\n }\r\n}", |
| "docLink": "https://learn.microsoft.com/en-us/graph/api/filestoragecontainer-post-columns?view=graph-rest-1.0", | ||
| "headers": [ | ||
| { | ||
| "name": "Content-type", |
There was a problem hiding this comment.
| "name": "Content-type", | |
| "name": "Content-Type", |
| "docLink": "https://learn.microsoft.com/en-us/graph/api/filestoragecontainer-post-permissions?view=graph-rest-1.0", | ||
| "headers": [ | ||
| { | ||
| "name": "Content-type", |
There was a problem hiding this comment.
| "name": "Content-type", | |
| "name": "Content-Type", |
This PR adds a new SharePoint Embedded category to the Graph Explorer sample queries, positioned alphabetically between Security and SharePoint Lists.
Queries added