Golang连接到AngularJS

3
如何将go lang的后端服务器连接到angularjs?我知道angularjs通过$http或$resource服务与go通信,但是在所有数据结构都创建完毕后,go代码的哪一部分与angular通信?这是编码/编组json还是我们创建某种路由...。
我是一个新手,想在学习了angular和go之后开始这个项目,但这是我不理解的部分——go中与angular的$resource或$http服务链接的终点是什么?

这可能会有所帮助 http://thenewstack.io/make-a-restful-json-api-go/ - m0meni
你最好在 https://forum.golangbridge.org/ 上提出一个相当“广泛”的问题,短答案是使用Go的 net/http 包,使用路由服务JSON。 - elithrar
1个回答

0
创建一个HTTP端点,读取JSON字符串,对其进行反序列化处理,执行一些逻辑操作,并将JSON字符串写入响应中。例如:
func main() {

http.HandleFunc("/api/", apiHandler)

    logInfo(fmt.Sprintf("Starting server on port %d", serverPort))
    err := http.ListenAndServe(fmt.Sprintf(":%d", serverPort), nil)
    if err != nil {
        logError(err)
    }
}


func apiHandler(w http.ResponseWriter, r *http.Request) {

    //ensure its a post
    method := r.Method

    if method != "POST" {
        fail(w, "Invalid http method")
        return
    }

    requestData, err := ioutil.ReadAll(r.Body)

    if err != nil {
        fail(w, err.Error())
        return
    }


    respData, err := doBusinessLogicWithData(requestData)

    if err != nil {
        fail(w, err.Error())
        return
    }

    respJSONBytes, err := json.Marshal(respData)
    if err != nil {
        fail(w, err.Error())
        return
    }
    fmt.Fprintln(w, string(respJSONBytes))

}

func fail(w http.ResponseWriter, message string) {

    result := &struct {
        Success bool
        Message string
    }{
        Success: false,
        Message: message,
    }

    resultJSONBytes, err := json.Marshal(result)
    if err != nil {
        logError(err)
        fmt.Fprintln(w, "Unable to generate result")
        return
    }
    fmt.Fprintln(w, string(resultJSONBytes))
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接