Skip to content

AbacatePay/go-rest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

AbacatePay Go REST 🥑

Cliente HTTP oficial em Go para integração com a API da AbacatePay.
Rápido, seguro, idiomático e pronto para produção.

AbacatePay Open Source

Instalação

go get github.com/AbacatePay/go-rest@latest

Configuração básica

import "github.com/AbacatePay/go-rest"

client := abacatepay.New(abacatepay.Options{
	Secret: "ABACATEPAY_SECRET",
})

Ou via variável de ambiente

export ABACATEPAY_SECRET=...

Conceitos importantes

Versão da API

Por padrão, o SDK utiliza a versão v2 da API.

Você pode sobrescrever:

client := abacatepay.New(abacatepay.Options{
	Version: 1,
})

Retry automático

Por padrão:

  • 3 tentativas
  • Retry em 408, 429, 5xx
  • Backoff exponencial

Customização

client := abacatepay.New(abacatepay.Options{
	Retry: abacatepay.RetryOptions{
		Max: 5,
		OnRetry: func(attempt int) {
			log.Println("retry", attempt)
		},
	},
})

Timeout

client := abacatepay.New(abacatepay.Options{
	Timeout: 3 * time.Second,
})

Quickstart

Crie um novo cupom

package main

import (
	"fmt"

    types "github.com/AbacatePay/go-types/v2"
	abacatepay "github.com/AbacatePay/go-rest"
)

func main() {
	client := abacatepay.New(abacatepay.Options{
		Secret: "YOUR_SECRET",
	})

	body := types.RESTPostCreateCouponBody{
        Value: 10,
		Code: "PROMO10",
		Type: "PERCENTAGE",
	}

	res, err := client.Post[types.RESTPostCreateCouponData](
		v2.RouteCreateCoupon,
		body,
	)

	if err != nil {
		panic(err)
	}

	fmt.Println("Coupon ID:", res.ID)
}

Tratamento de erros

O SDK expõe erros tipados:

if err != nil {
	switch e := err.(type) {
	case *abacatepay.AbacatePayError:
		fmt.Println("API error:", e.Message)
	case *abacatepay.HTTPError:
		fmt.Println("HTTP error:", e.Status)
	default:
		fmt.Println("Unknown error:", err)
	}
}

Feito com 🥑 pela equipe AbacatePay
Open source, de verdade.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

Packages

 
 
 

Contributors

Languages