Skip to main content
Version: v2.0

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/v2"
batchapi "github.com/michaeldcanady/servicenow-sdk-go/v2/batchapi"
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
batchResponse, err := client.Now().Batch().Post(context.Background(), body, postConfig)
if err != nil {
log.Fatal(err)
}
}
Was this page helpful?