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?