Kill Bill go client library and kill bill command line
This repository contains killbill go client library (kbclient)
and killbill command line tool (kbcmd)
Kill bill go client library
Kill bill go client library is a go package that can be used to connect to
kill bill.
Install
go get -u github.com/killbill/kbcli
Creating new client
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.
Client code generation
This client code was generated by the go-swagger tool.
We use modified template to generate the client,
and the sources are here.
To generate,
# Update swagger.json
curl http://localhost:8080/swagger.json | jq "." >swagger.json
# Install swagger tool
go get github.com/go-swagger/go-swagger
go install github.com/go-swagger/go-swagger/cmd/swagger
# Regenerate the tool
swagger generate client -f swagger.json -m kbmodel -c kbclient --default-scheme=http
Generating dev extensions
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.