2017-09-11 2 views
0

Ich versuche einfach REST-Dienst auf Go & Beego erstellen.Wie Daten von Databsae in Go & Beego erhalten?

Ich kann die Logik von Beego nicht verstehen.

Alle Beispiele enthalten Informationen zum Abrufen nur eines Elements. Ich muss alles bekommen.

Im Falle von API.

Controller:

package controllers 
import (
    "api/models" 
    "github.com/astaxie/beego" 
) 

type UserController struct { 
    beego.Controller 
} 

func (u *UserController) GetAll() { 
    users := models.GetAllUsers() 
    u.Data["json"] = users 
    u.ServeJSON() 
} 

Modell:

package models 

import (
    "github.com/astaxie/beego/orm" 
) 

var (
    UserList map[int]*User 
) 

func init() { 
    orm.RegisterModel(new(User)) 

    UserList = make(map[int]*User) 

    u := User{1, "Chandler", "Bing", "[email protected]"} 
    UserList[1] = &u 
} 

type User struct { 
    Id int `form:"id"` 
    First_name string `form:"first_name"` 
    Last_name string `form:"last_name"` 
    Email string `form:"email"` 
} 

func GetAllUsers() map[int]*User { 
    return UserList 
} 

, das funktioniert! Aber wie erhalten Sie Daten aus der Datenbank?

Datenbankverbindungen ist ok (mysql)

+0

SQL-Abfrage ausführen, Ergebnisse verarbeiten, return'em? –

Antwort

0

Sie sollten wie folgt aussehen In Ihrem Fall Ihre GetAllUsersQueryTable wie erwähnt here

var users []*User 
num, err := o.QueryTable("user").Filter("name", "slene").All(&users) 

verwenden sollte, aber ich habe es nicht getestet.

func GetAllUsers() map[int]*User { 
    usrs, err := orm.QueryTable("users").Values(&UserList) 
    if err != nil { 
     panic(err) 
    } 
    return UserList 
}