This is a creation in Article, where the information may have evolved or changed.
Package Main
Import (
"Database/sql"
"FMT"
_ "Github.com/mattn/go-sqlite3"
"Log"
"Net/http"
)
User is User
Type User struct {
ID int
Name string
}
Func (user User) string () string {
Format: = ' ID:%d Name:%s '
Return to FMT. Sprintf (format, user.id, user. Name)
}
Func SayHello (w http. Responsewriter, R *http. Request) {
Fmt. fprintf (w, "Hello world!")
}
Func getusers () string {
DB, err: = SQL. Open ("Sqlite3", "./foo.db")
If err! = Nil {
Log. Fatal (ERR)
}
Defer db. Close ()
Rows, err: = db. Query ("SELECT * from users")
If err! = Nil {
Log. Fatal (ERR)
}
Defer rows. Close ()
var ID, name string
Users: = ""
For rows. Next () {
Err = rows. Scan (&id, &name)
If Err = = Nil {
Log. Println (ID, name)
Users = users + ID + "," + name + "; \ n"
}
}
return users
}
Func getusers (w http. Responsewriter, R *http. Request) {
Fmt. fprintf (W, getusers ())
}
Func Main () {
http. Handlefunc ("/", SayHello)
http. Handlefunc ("/users", Getusers)
ERR: = http. Listenandserve (": 8880", nil)
If err! = Nil {
Log. Fatal ("Listenandserve:", err.) Error ())
}
}