嗨我正在使用谷歌golang重置服务我有post方法的问题 当我尝试运行此代码时,它显示未定义的帖子数据
package main
import (
"code.google.com/p/gorest"
"fmt"
"net/http"
)
type Invitation struct {
User string
}
//Service Definition
type HelloService struct {
gorest.RestService
//gorest.RestService `root:"/tutorial/"`
helloWorld gorest.EndPoint `method:"GET" path:"/hello-world/" output:"string"`
sayHello gorest.EndPoint `method:"GET" path:"/hello/{name:string}" output:"string"`
posted gorest.EndPoint `method:"POST" path:"/post/" postdata:"User" `
}
func main() {
gorest.RegisterService(new(HelloService)) //Register our service
http.Handle("/", gorest.Handle())
http.ListenAndServe(":8787", nil)
}
func (serv HelloService) Posted(posted User) {
fmt.Println(User)
}
func (serv HelloService) HelloWorld() string {
return "Hello World"
}
func (serv HelloService) SayHello(name string) string {
return "Hello " + name
}
这是我得到的错误
# command-line-arguments
./registation.go:28: undefined: User
./registation.go:29: undefined: User
请帮助解决此问题 谢谢
答案 0 :(得分:0)
func (serv HelloService) Posted(posted User) {
fmt.Println(User)
}
应该是
func (serv HelloService) Posted(posted User) {
fmt.Println(posted)
}
posted方法接受一个带已发布名称和用户类型的参数。
你应该打印实际的参数,而不是它的类型 - 就像你在这里一样
func (serv HelloService) SayHello(name string) string {
return "Hello " + name
}
答案 1 :(得分:-1)
package main
import (
//"bytes"
"code.google.com/p/gorest"
"crypto/rand"
"crypto/tls"
//"encoding/json"
"fmt"
"log"
"net"
"net/http"
"net/mail"
"net/smtp"
)
type InvitEmail struct {
SenderEmail string
ReceiverEmail string
}
//Service Definition
type HelloService struct {
gorest.RestService
//gorest.RestService `root:"/tutorial/"`
helloWorld gorest.EndPoint `method:"GET" path:"/hello-world/" output:"string"`
sayHello gorest.EndPoint `method:"GET" path:"/hello/{name:string}" output:"string"`
userRegister gorest.EndPoint `method:"POST" path:"/UserRegister/" postdata:"InvitEmail"`
/*activate gorest.EndPoint `method:"GET" path:"/activate/{email:string}/{token:string}" output:"bool"`
userInvite gorest.EndPoint `method:"POST" path:"/UserInvite/" postdata:"InvitEmail"`*/
}
func main() {
gorest.RegisterService(new(HelloService)) //Register our service
http.Handle("/", gorest.Handle())
http.ListenAndServe(":8787", nil)
}
func (serv HelloService) UserRegister(u InvitEmail) {
fmt.Println(u.ReceiverEmail, "xxxxxxxx", u.SenderEmail)
invitationmail(u.SenderEmail, u.ReceiverEmail)
serv.ResponseBuilder().SetResponseCode(200).Write([]byte("from :" + u.SenderEmail + " to :" + u.ReceiverEmail))
}
func (serv HelloService) HelloWorld() string {
return "Hello World"
}
func (serv HelloService) SayHello(name string) string {
return "Hello " + name
}
func invitationmail(sender, receiver) {
//emailsendingpart
}