私は初めてGoogleGOをいじくり回しています。「helloworld」アプリケーションを拡張して、initセクションでパスを定義しようとしました。これが私がこれまでにしたことです:
package hello
import (
"fmt"
"net/http"
)
func init() {
http.HandleFunc("/service", serviceHandler)
http.HandleFunc("/site", siteHandler)
http.HandleFunc("/", handler)
}
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "Hello, there")
}
func serviceHandler( w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "this is Services")
}
func siteHandler( w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "this is Sites")
}
コールバックのみがhandler()
実行され、他は無視されます。例:http://myserver/service/foo
印刷しHello, there
ます。私はそれがそうなることを望んでいましたthis is Services
。
サービスルーティングを行うためのより良い方法はありますか?理想的には、これらはとにかく別々のスクリプトであると思いますが、app.yamlが_go_app
スクリプト宣言で特別な文字列を必要とするという事実に基づいて、Goにはスクリプトが1つしかないように見えます。
ありがとう!