2014-10-27 12 views
8

https://cloud.google.com/appengine/docs/go/users/Router olmadan Google Cloud Go İşleyici Gorilla Mux? Ben herhangi bir yönlendirici kullanmak belirtmeyen burada görürsünüz

...: Google Bulutta https://cloud.google.com/appengine/docs/go/config/appconfig

Golang ile kullanıldığında, bu app.yaml her işleyicisi belirtmek için söylüyor. Bu, daha iyi performans için üçüncü taraf yönlendiriciyi kullanmamamız gerektiği anlamına mı geliyor? Router için Gorilla Mux'u kullanmak istiyorum ... Google App Engine Golang Uygulaması için başka yönlendiriciler kullanırsam nasıl çalışır?

Lütfen bana bildirin. Teşekkürler!

cevap

8

Appilla ile Gorilla Mux'ı kullanabilirsiniz.

application: myapp 
version: 1 
runtime: go 
api_version: go1 

handlers: 

- url: /(.*\.(gif|png|jpg))$ 
    static_files: static/\1 
    upload: static/.*\.(gif|png|jpg)$ 

- url: /.* 
    script: _go_app 

_go_app senaryo App Engine tarafından derlenen Git programıdır:

app.yaml ait işleyicileri bölümün sonunda

, rotalar git uygulamasıyla ilgili tüm yolları bir komut dosyası işleyicisi ekleyin: İşte nasıl. /.* modeli tüm yollarla eşleşir.

App Engine tarafından oluşturulan ana işlev, tüm istekleri DefaultServeMux'a gönderir.

Bir init() işlevinde, bir Gorilla Router oluşturun ve yapılandırın. Tüm yolları işlemek için Gorilla yönlendiriciyi DefaultServeMux ile kaydettirin:

func init() { 
    r := mux.NewRouter() 
    r.HandleFunc("/", homeHandler) 

    // The path "/" matches everything not matched by some other path. 
    http.Handle("/", r) 
} 
+0

Fantastik, aynı sorunla karşılaştım ... –

İlgili konular