Golang重置服务发布方法发布数据未定义

时间:2015-04-01 04:15:53

标签: post go gorest

嗨我正在使用谷歌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

请帮助解决此问题 谢谢

2 个答案:

答案 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
}