Indigo is a web-framework, designed to be readable, handy, yet performant (blazingly fast I would even say)
Documentation is available here. It may be incomplete or not represent the actual state, so make sure the version in documentation corresponds to the latest release.
package main
import (
"log"
"github.com/indigo-web/indigo"
"github.com/indigo-web/indigo/http"
"github.com/indigo-web/indigo/router/inbuilt"
)
func HelloWorld(request *http.Request) *http.Response {
return http.String(request, "Hello, world!")
}
func Log(request *http.Request) *http.Response {
text, err := request.Body.String()
if err != nil {
return http.Error(request, err)
}
log.Printf("%s says: %s", request.Remote, text)
return http.String(request, text)
}
func main() {
r := inbuilt.New()
r.Resource("/").
Get(HelloWorld).
Post(Log)
err := indigo.New(":8080").Serve(r)
if err != nil {
log.Fatal(err)
}
}
You can find more examples in examples/.