Simple content negotation in Golang
func DoSomething(r *http.Request) string {
accept := r.Header.Get("Accept")
switch accept {
case "application/json":
return renderJSON()
case "application/xml":
return renderXML()
}
return renderHTML()
}