/exp-builder

Primary LanguageGoApache License 2.0Apache-2.0

Expression Builder 🔨

GoDoc Version Build Status Go Report Card Codecov

Safe queries from URL query strings

Expression Builder works with the exp expression library to define templates that are safely populated with data from a URL query string. More documentation to come.

func Handler(r *http.Request, w http.ResponseWriter) {

	// Define the URL arguments you want to allow and their types
	b := NewBuilder().
		String("firstName").
		String("lastName").
		Int("publishDate").
		Bool("isPublished")

	// Create a usable expression from the URL query string
	expression := b.Evaluate(r.URL.Query())

	// Next, safely pass it into the database, or something...
}

Pull Requests Welcome

This library is a work in progress, and will benefit from your experience reports, use cases, and contributions. If you have an idea for making this library better, send in a pull request. We're all in this together! 🔨