Нов съм в езика GO. Опитвате се да научите GO чрез изграждане на истинско уеб приложение. Използвам рамка на Revel.
И ето моите маршрути за ресурси:
GET /resource/:resource Resource.ReadAll
GET /resource/:resource/:id Resource.Read
POST /resource/:resource Resource.Create
PUT /resource/:resource/:id Resource.Update
DELETE /resource/:resource/:id Resource.Delete
например:
GET /resource/users
обаждания Resource.ReadAll("users")
И това е моят контролер на ресурси (това е само фиктивни действия засега):
type Resource struct {
*revel.Controller
}
type User struct {
Id int
Username string
Password string
}
type Users struct {}
func (u Users) All() string {
return "All"
}
func (c Resource) ReadAll(resource string) revel.Result {
fmt.Printf("GET %s", resource)
model := reflect.New(resource)
fmt.Println(model.All())
return nil
}
Опитвам се да получа екземпляр на Users struct, като преобразувам ресурен низ в обект, за да извикам функцията All.
и грешката:
не може да използва ресурс (тип низ) като тип отразяване. Въведете аргумент за отразяване. Ново: низът не прилага отразяване. Тип (липсващ метод за подравняване)
Нов съм в GO, моля, не ме съдете :)