Create batch request¶
Overview¶
Submits a BatchRequest containing all desired requests.
Path parameters¶
N/A
Optional query parameters¶
N/A
Required query parameters¶
N/A
Examples¶
package main
import (
"context"
"log"
servicenowsdkgo "github.com/michaeldcanady/servicenow-sdk-go"
batchapi "github.com/michaeldcanady/servicenow-sdk-go/batch-api"
abstractions "github.com/microsoft/kiota-abstractions-go"
)
// batchRequests A helper function to combine provided request information into a single `BatchRequest`.
func batchRequests(excludeResponseHeaders bool, requests ...*abstractions.RequestInformation) (*batchapi.BatchRequestModel, error) {
body := batchapi.NewBatchRequestModel()
for _, request := range requests {
restRequest, err := batchapi.CreateRestRequestFromRequestInformation(request, excludeResponseHeaders)
if err != nil {
return nil, err
}
if err := body.AddRequest(restRequest); err != nil {
return nil, err
}
}
return body, nil
}
func main() {
// Step 1: Create credentials
cred := credentials.NewBasicProvider("{username}", "{password}")
// Step 2: Initialize client
client, err := servicenowsdkgo.NewServiceNowServiceClient(
servicenowsdkgo.WithAuthenticationProvider(cred),
servicenowsdkgo.WithURL("https://{instance}.service-now.com"),
)
if err != nil {
log.Fatal(err)
}
// Step 3. Build requests, using ToXXXRequestInformation method
body, err := batchRequests(true, requests...)
if err != nil {
log.Fatal(err)
}
// Step 4: Configure request
postConfig := &batchapi.BatchRequestBuilderPostRequestConfiguration{}
// Step 5: Execute request
batch_response, err := client.Now2().Batch().Post(context.Background(), body, postConfig)
if err != nil {
log.Fatal(err)
}
}
package main
import (
"context"
"log"
servicenowsdkgo "github.com/michaeldcanady/servicenow-sdk-go"
batchapi "github.com/michaeldcanady/servicenow-sdk-go/batch-api"
abstractions "github.com/microsoft/kiota-abstractions-go"
)
// batchRequests A helper function to combine provided request information into a single `BatchRequest`.
func batchRequests(excludeResponseHeaders bool, requests ...*abstractions.RequestInformation) (*batchapi.BatchRequestModel, error) {
body := batchapi.NewBatchRequestModel()
for _, request := range requests {
restRequest, err := batchapi.CreateRestRequestFromRequestInformation(request, excludeResponseHeaders)
if err != nil {
return nil, err
}
if err := body.AddRequest(restRequest); err != nil {
return nil, err
}
}
return body, nil
}
func main() {
// Step 1: Create credentials
cred := credentials.NewBasicProvider("{username}", "{password}")
// Step 2: Initialize client
client, err := servicenowsdkgo.NewServiceNowServiceClient(
servicenowsdkgo.WithAuthenticationProvider(cred),
servicenowsdkgo.WithURL("https://{instance}.service-now.com"),
)
if err != nil {
log.Fatal(err)
}
// Step 3: Define raw URL
rawURL := "https://https://{instance}.service-now.com/api/now/v1/batch"
// Step 4. Build requests, using ToXXXRequestInformation method
body, err = batchRequests(true, requests...)
if err != nil {
log.Fatal(err)
}
// Step 5: Configure request
postConfig = &batchapi.BatchRequestBuilderPostRequestConfiguration{}
// Step 6: Build request
requestBuilder := batchapi.NewBatchRequestBuilder(rawURL, client.RequestAdapter)
// Step 7: Execute request
resp, err := requestBuilder.Post(context.Background(), body, postConfig)
if err != nil {
log.Fatal(err)
}
}