Skip to content

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)
    }

}