开始

安装

安装Tango:

  1. go get github.com/lunny/tango

一个经典的Tango例子如下:

  1. package main
  2. import (
  3. "errors"
  4. "github.com/lunny/tango"
  5. )
  6. type Action struct {
  7. tango.JSON
  8. }
  9. func (Action) Get() interface{} {
  10. if true {
  11. return map[string]string{
  12. "say": "Hello tango!",
  13. }
  14. }
  15. return errors.New("something error")
  16. }
  17. func main() {
  18. t := tango.Classic()
  19. t.Get("/", new(Action))
  20. t.Run()
  21. //指定监听端口
  22. //t.Run("0.0.0.0:8080")
  23. //HTTPS支持
  24. //t.RunTLS("server.crt","server.key")
  25. }

然后在浏览器访问http://localhost:8000, 将会得到一个json返回

  1. {"say":"Hello tango!"}

如果将上述例子中的 true 改为 false, 将会得到一个json返回

  1. {"err":"something error"}

这段代码因为拥有一个内嵌的tango.JSON,所以返回值会被自动的转成Json

使用

Tango 对象是所有事情的开始。通常,我们只通过调用tango.Classic()就可以创建一个Tango对象,大多数情况都可以满足。如:

  1. func main() {
  2. t := tango.Classic()
  3. t.Use(...)
  4. t.Get(...)
  5. t.Run()
  6. }

默认的tango有一个自带的Log,日志输出是在屏幕,如果您想使用自定义的Logger,则可以

  1. import "github.com/lunny/log"
  2. l := log.New(out, "[tango] ", log.Ldefault())
  3. l.SetOutputLevel(log.Ldebug)
  4. t := tango.Classic(l)

Classic接受的Logger是一个接口,只要实现了Debug, Warn, Error等方法均可,因此您也可以采用自己的Logger组件。

当然可扩展性体现在你可以自定义,比如你只是想要提供一个静态文件服务,则:

  1. func main() {
  2. t := tango.New(tango.Static(tango.StaticOptions{Prefix:"public"}))
  3. t.Run()
  4. }

然后,你只需将要访问的文件放到 ./public 目录下,就可以通过浏览器来访问了。

如果您希望使用第三方的Logger,那么可以调用以下函数。只要这个Logger实现了tango.Logger接口即可。

  • NewWithLog(Logger, ...tango.Handler)