Giter VIP home page Giter VIP logo

negronicql's Introduction

negronicql

Golang Negroni middleware for the gocql package.

Dependencies

Depends on Gorilla Context Package `

Usage

Backward Compatibility

Nov-16-2014: Changed from Session to CQLSession to avoid Session issues in Negroni by Dal-Papa. This pull will break older builds.

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` ).Consistency(gocql.One).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)

negronicql's People

Contributors

mikebthun avatar dal-papa avatar

Watchers

James Cloos avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.