InsionInsion
Go

Errors

Handle Go API errors and inspect raw HTTP responses

Overview

This guide explains how to handle errors returned by the Insion SDK and inspect response details when troubleshooting failed requests.

Handle errors

Methods return a nil response and non-nil error on failure. API responses wrap *core.APIError; known statuses use root-package types such as *insion.BadRequestError. Transport and context errors can be checked with errors.Is/errors.As.

result, err := api.ModerateARecord(ctx, request)
if err != nil {
    var apiErr *core.APIError
    if errors.As(err, &apiErr) {
        log.Printf("status=%d error=%v", apiErr.StatusCode, apiErr)
    }
    return err
}

Inspect raw responses

For HTTP metadata, use api.WithRawResponse. Raw calls return a wrapper containing Body and the underlying response.

response, err := api.WithRawResponse.ListRecords(ctx, &insion.GetAPIV1RecordsRequest{})
if err == nil {
    log.Println(response.StatusCode, response.Header, response.Body.HasMore)
}

How is this guide?

On this page

Latest Release

View the Go SDK on pkg.go.devGo SDK versionGo SDK license