#40 Compitable with context.Context middlewares

Açık
lunny tarafından 2 yıl önce açıldı · 0 yorum
lunny 2 yıl önce yorum yaptı

Author: @lunny

Action is an interface in a middleware and context.Context is also an interface. There are some similar features between Action and context.Context. In tango, we use assert to get the info from Action, in context.Context, it’s also a regular usage get info via assert.

func (ctx *tango.Ctx) {
     if sess, ok := ctx.Action().(Sessioner); ok {
           // do something
    }
}
func (resp http.ResponseWriter, req *http.Request) {
    if sess, ok := req.Context().(Sessioner); ok {
          // do something 
   }
}

So that maybe all the tango’s middlewares could be changed slightly to apply in http.Handler.

Author: @lunny Action is an interface in a middleware and `context.Context` is also an interface. There are some similar features between Action and `context.Context`. In tango, we use assert to get the info from Action, in `context.Context`, it's also a regular usage get info via assert. ```Go func (ctx *tango.Ctx) { if sess, ok := ctx.Action().(Sessioner); ok { // do something } } ``` ```Go func (resp http.ResponseWriter, req *http.Request) { if sess, ok := req.Context().(Sessioner); ok { // do something } } ``` So that maybe all the tango's middlewares could be changed slightly to apply in `http.Handler`.
Bu konuşmaya katılmak için oturum aç.
Kilometre Taşı Yok
Atanan Kişi Yok
1 Katılımcı
Bitiş Tarihi

Bitiş tarihi atanmadı.

Bağımlılıklar

Bu konu henüz bir bağımlılık içermiyor.

Yükleniyor…
İptal
Kaydet
Henüz bir içerik yok.