This repository contains killbill go client library (kbclient) and killbill command line tool (kbcmd)
KB Version | KBCli Version |
---|---|
0.20.x | 1.x.y |
0.22.x | 2.x.y |
0.24.x | 3.x.y |
Kill bill go client library is a go package that can be used to connect to Kill Bill server.
go get -u github.com/killbill/kbcli/v3
trp := httptransport.New("127.0.0.1:8080", "", nil)
// Add text/xml producer which is not handled by openapi runtime.
trp.Producers["text/xml"] = runtime.TextProducer()
// Set this to true to dump http messages
trp.Debug = false
// Authentication
authWriter := runtime.ClientAuthInfoWriterFunc(func(r runtime.ClientRequest, _ strfmt.Registry) error {
encoded := base64.StdEncoding.EncodeToString([]byte("admin"/*username*/ + ":" + "password" /**password*/))
if err := r.SetHeaderParam("Authorization", "Basic "+encoded); err != nil {
return err
}
if err := r.SetHeaderParam("X-KillBill-ApiKey", apiKey); err != nil {
return err
}
if err := r.SetHeaderParam("X-KillBill-ApiSecret", apiSecret); err != nil {
return err
}
return nil
})
client := kbclient.New(trp, strfmt.Default, authWriter, kbclient.KillbillDefaults{})
Look at the complete example here. For more examples, look at kbcmd tool.
We also provide a client wrapper (a higher level and easier to use api) that is built (not generated) on top of the generated code.
See the package killbill
package under the wrapper
directory.
There is a suite of test client_test.go
that shows how to use it.
We use a forked version of the go-swagger
client hosted under https://github.com/killbill/go-swagger.
Every so often we rebase our fork from upstream to keep it up-to-date. Given a version of a swagger
binary, the
client can be regenarated using:
swagger generate client -f kbswagger.yaml -m kbmodel -c kbclient --default-scheme=http
We also have dev extension APIs (like clock etc), that are in swagger-dev.json. To generate, run the following.
# Regenerate the tool
swagger generate client -f swagger-dev.json -m kbmodel -c kbclient --default-scheme=http
# Delete the client file.
rm kbclient/kill_bill_dev_client.go
kbcmd is a command line tool that uses the go client library. This tool can do many of the kill bill operations. More details are available here in README.