Skip to content

datastax/pulsar-admin-client-go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pulsar-admin-client-go

A Pulsar Admin client library in Go. The sources are generated from the Apache Pulsar swagger REST API definition.

Example usage

Example program to get list of topics in a namespace

   import (
          "context"
          "io"
          "log"
          "net/http"
          "os"

          "github.com/datastax/pulsar-admin-client-go/src/pulsaradmin"
   )

   func main() {

          // PULSAR_ADMIN_URL should be in the form 'https://myserver.com/admin/v2'
          url := os.Getenv("PULSAR_ADMIN_URL")
          if url == "" {
                 log.Fatal("missing required environment var 'PULSAR_ADMIN_URL'")
          }
          token := os.Getenv("PULSAR_ADMIN_TOKEN")
          if token == "" {
                 log.Fatal("missing required environment var 'PULSAR_ADMIN_TOKEN'")
          }
          client, _ := pulsaradmin.NewClient(url, func(c *pulsaradmin.Client) error {
                 c.RequestEditors = append(c.RequestEditors, func(ctx context.Context, req *http.Request) error {
                        req.Header.Set("User-Agent", "go")
                        req.Header.Set("Authorization", token)
                        return nil
                 })
                 return nil
          })

          tenant := "my-tenant"
          namespace := "my-namespace"
          params := &pulsaradmin.NamespacesGetTopicsParams{}
          resp, err := client.NamespacesGetTopics(context.Background(), tenant, namespace, params)
          if err != nil {
                 log.Fatalf("failed to get topics for namespace '%v': %v", tenant+"/"+namespace, err)
          } else {
                 log.Printf("status code: %v", resp.StatusCode)
                 bodyBytes, err := io.ReadAll(resp.Body)
                 if err != nil {
                        log.Fatalf("failed to read response body: %v", err)
                 }
                 resp.Body.Close()
                 log.Print(string(bodyBytes))
          }
   }

Updating the sources

  1. Get the latest swagger spec

    make download-specs
    
  2. Revise the spec to fix duplicate endpoint IDs

    make revise-specs
    
  3. Convert the swagger spec to openapi

    make openapi-json
    make openapi-yaml
    
  4. Generate the client code

    make generate
    
  5. Build the generated sources

    make build
    

About

For a new client library written in Go for accessing pulsar clusters

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published