Golang连接到angularjs

How do I connect a backend server in go lang to angularjs? I know angularjs communicates with go via $http or $resource services but what part of the go code links communicates with angular once all the data structs have been made? Would this be the encoded/marshalled json or do we create some kind of route...

I am a newbie looking to start this project after studying angular and go but this is the part i don't understand - what is the end point from go that angulars $resource or $http service links with?

Create a http endpoint that reads json string, unmarshalls it, does some logic with it and writes a json string to the response. E.g:

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))
}