msgraph-sdk-go
msgraph-sdk-go copied to clipboard
Unable to query delta users using SkipToken
Describe the bug
I’m trying to query users with the Delta API in the Go SDK, but examples in Microsoft documentation don’t match available SDK entities.
Detailed Description:
From the Microsoft Delta Query Documentation:
// Documentation example for Delta queries
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphusers "github.com/microsoftgraph/msgraph-sdk-go/users"
)
requestSkiptoken := "oEBwdSP6uehIAxQOWq_3Ksh_TLol6KIm3stvdc6hGhZRi1hQ7Spe__dpvm3U4zReE4CYXC2zOtaKdi7KHlUtC2CbRiBIUwOxPKLa"
requestParameters := &graphusers.UsersDeltaWithRequestBuilderGetQueryParameters{
Skiptoken: &requestSkiptoken,
}
configuration := &graphusers.UsersDeltaWithRequestBuilderGetRequestConfiguration{
QueryParameters: requestParameters,
}
delta, err := graphClient.Users().Delta().GetAsDeltaGetResponse(context.Background(), configuration)
In the SDK, UsersDeltaWithRequestBuilderGetQueryParameters isn’t available. The closest alternative, DeltaRequestBuilderGetQueryParameters, lacks a Skiptoken field:
type DeltaRequestBuilderGetQueryParameters struct {
Count *bool `uriparametername:"%24count"`
Expand []string `uriparametername:"%24expand"`
Filter *string `uriparametername:"%24filter"`
Orderby []string `uriparametername:"%24orderby"`
Search *string `uriparametername:"%24search"`
Select []string `uriparametername:"%24select"`
Skip *int32 `uriparametername:"%24skip"`
Top *int32 `uriparametername:"%24top"`
}
Additional Attempt:
I tried direct request configuration using the following code, but without success:
response, err := graphClient.GetClient().GetAdapter().Send(ctx, requestInfo, models.CreateUserCollectionResponseFromDiscriminatorValue, nil)
if err != nil {
log.Fatalf("Error making direct request: %v", err)
}
Without access to Skiptoken or guidance on retrieving deltaToken, it’s challenging to perform delta queries effectively.
Expected behavior
The Go SDK should provide delta query support equivalent to the documentation examples, including options for Skiptoken and deltaToken handling. This would allow developers to correctly paginate through delta queries and manage state with each request, ensuring alignment with other Microsoft Graph SDKs.
How to reproduce
How to Reproduce:
- Set up a graphClient in Go using the Microsoft Graph Go SDK.
- Attempt a Delta query to list users using the following configuration in your code:
requestParameters := &graphusers.UsersDeltaWithRequestBuilderGetQueryParameters{
Skiptoken: &requestSkiptoken, // Expecting Skiptoken field here
}
configuration := &graphusers.UsersDeltaWithRequestBuilderGetRequestConfiguration{
QueryParameters: requestParameters,
}
delta, err := graphClient.Users().Delta().GetAsDeltaGetResponse(context.Background(), configuration)
- Observe that UsersDeltaWithRequestBuilderGetQueryParameters is missing in the SDK, and Skiptoken cannot be added.
SDK Version
1.51.0
Latest version known to work for scenario above?
No response
Known Workarounds
No response
Debug output
Click to expand log
```</details>
### Configuration
_No response_
### Other information
_No response_