wakumaku / kickbox

kickbox API Client

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

kickbox API client

test workflow

https://docs.kickbox.com/docs/using-the-api

$ go get github.com/wakumaku/kickbox

✅ Single verification

✅ Batch verification

✅ Batch status check

API Client

Will make real http requests against kickbox services. You can use a test_apikey to enable the sandbox mode.

Create a new Client

With defaults:

    client, err := kickbox.New("apikey")
    ...

With options:

    client, err := kickbox.New("apikey",
        kickbox.OverrideBaseURL("http://mock.server.com"),
        kickbox.MaxConcurrentConnections(100), // Default: is 25
        kickbox.CustomRateLimiter(rate.NewLimiter(rate.Limit(50), 1)), // Default: 8000 per minute
        kickbox.CustomHTTPClient(&http.Client{}),
    )
    ...

Single verification:

    client, err := kickbox.New("apikey")
    if err != nil {
        return
    }

    stats, response, err := client.Verify(context.TODO(), "example@email.com")
    ...

Batch Verification:

    client, _ := kickbox.New("apikey")

    emailsFile, err := os.Open(csvFilePath)
    if err != nil {
        return 
    }

    resp, _ := client.VerifyBatch(
        context.TODO(),
        emailsFile,
    )

With options:

    client, _ := kickbox.New("apikey")

    emailsFile, err := os.Open(csvFilePath)
    if err != nil {
        return 
    }

    resp, err := c.VerifyBatch(
        context.TODO(),
        emailsFile,
        kickbox.Filename("my_results.csv"),
        kickbox.Callback("http://notify.result.here"),
    )

Batch Status Check:

    client, _ := kickbox.New("apikey")

    resp, err := client.VerifyBatchCheck(context.TODO(), "batch_ID")

Local Sandbox Client

For testing and CI/CD environments, without external calls.

    client := kickbox.NewSandbox()

    stats, response, err := client.Verify(context.TODO(), "example@email.com")

About

kickbox API Client

License:The Unlicense


Languages

Language:Go 99.9%Language:Makefile 0.1%