На их странице github я нашел простой пример, который просто пишет ответ в браузере.
package main
import (
"fmt"
"log"
"github.com/buaazp/fasthttprouter"
"github.com/valyala/fasthttp"
)
func Index(ctx *fasthttp.RequestCtx) {
fmt.Fprint(ctx, "Welcome!\n")
}
func Hello(ctx *fasthttp.RequestCtx) {
fmt.Fprintf(ctx, "hello, %s!\n", ctx.UserValue("name"))
}
func main() {
router := fasthttprouter.New()
router.GET("/", Index)
router.GET("/hello/:name", Hello)
log.Fatal(fasthttp.ListenAndServe(":8080", router.Handler))
}
Но если я хочу получить строку, int, изображение и что-то еще из моей базы данных и отправить их куда-нибудь (в моем случае это мобильное приложение), как я могу использовать fasthttp? Я новичок в go и http.
Я пытался переписать эти функции для себя, но они не могут иметь операторы возврата.
func InsertUser(ctx *fasthttp.RequestCtx) {
id, err := databaseWiki.InsertUser(...)
if err != nil {
log.Fatal(err)
}
fmt.Printf("User %s was added succesfull\n", id)
fmt.Fprint(ctx, "User " + id + " was added successful\n")
}
func SelectUser(ctx *fasthttp.RequestCtx) {
id := ctx.UserValue("id").(string)
u, err := databaseWiki.SelectUser(id)
if err != nil {
log.Fatal(err)
}
fmt.Printf("ID: %s, Name: %s, Location: %s\n", u.ID, u.Name, u.Location)
fmt.Fprintf(ctx, "ID: " + u.ID + ", Name: " + u.Name + ", Location: " + u.Location + "\n")
}
func InitRouter() {
router := fasthttprouter.New()
router.GET("/insert", InsertUser)
router.GET("/select/:id", SelectUser)
log.Fatal(fasthttp.ListenAndServe(":8080", router.Handler))
}