negronicql

package module
v0.0.0-...-86b7d2e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 15, 2014 License: MIT Imports: 3 Imported by: 0

README

negronicql

Golang Negroni middleware for the gocql package.

Dependencies

Depends on Gorilla Context Package `

Usage
import(

"github.com/mikebthun/negronicql"
"github.com/gorilla/mux"
"github.com/gorilla/context"

)

 router := mux.NewRouter()

 router.HandleFunc("/", MyHandler ).Methods("POST")
 n := negroni.Classic()
 cqldb := negronicql.New()

 //set cluster options here if needed, defaults to localhost
 //cqldb.Ips = []string{"127.0.0.1", "127.0.0.2"}  
 //cqldb.Consistency = gocql.Quorum
 cqldb.Keyspace = "MyKeySpace"

 cqldb.Connect()
 
 //defer close here IMPORTANT
 defer cqldb.Session.Close()

 n.Use(cqldb)
 n.UseHandler(router)
 n.Run(":3000")
 

func MyHandler(w http.ResponseWriter, req *http.Request) {
 
     //grab the session here

     session = context.Get( req, "CQLSession" ).(*gocql.Session)


     
}

Run your queries like normal on the gocql session:


session.Query( `SELECT * FROM blah` ).Exec()

If you want to customize your ClusterConfig object, you can instantiate one, give it its attributes and Connect().

  cqldb := negronicql.New()
  cqldb.Cluster = gocql.NewCluster("127.0.0.1", "127.0.0.2")
  cqldb.Cluster.Authenticator = gocql.PasswordAuthenticator{"user", "password"}
  cqldb.Cluster.Port = 4242
  cqldb.Cluster.Keyspace = "MyKeySpace"
  cqldb.Cluster.Consistency = gocql.Quorum
  // ...
  cqldb.Connect()

Contributors

Author : Mike B Thun @mikebthun

Contrib : Clem DalPalu @Dal-Papa

License

The MIT License (MIT)

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Negronicql

type Negronicql struct {
	Cluster     *gocql.ClusterConfig
	Ips         []string
	Keyspace    string
	Consistency gocql.Consistency
	Session     *gocql.Session
}

func New

func New() *Negronicql

func (*Negronicql) Connect

func (m *Negronicql) Connect() error

be sure to defer session.close()

func (*Negronicql) ServeHTTP

func (m *Negronicql) ServeHTTP(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc)

The middleware handler

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL