FAQs

How do I integrate with existing servers?

Every Macaron instance implements http.Handlerarrow-up-right, so it can easily be used to serve subtrees on existing Go servers. For example this is a working Macaron app for Google App Engine:

package hello

import (
    "net/http"

    "gopkg.in/macaron.v1"
)

func init() {
    m := macaron.Classic()
    m.Get("/", func() string {
        return "Hello world!"
    })
    http.Handle("/", m)
}

How do I change the port/host?

Macaron's Run function looks for the PORT and HOST environment variables and uses those. Otherwise Macaron will default to localhost:4000arrow-up-right. To have more flexibility over port and host, use the http.ListenAndServearrow-up-right function instead.

Or following ways:

  • m.Run("0.0.0.0"), listen on 0.0.0.0:4000

  • m.Run(8080), listen on 0.0.0.0:8080

  • m.Run("0.0.0.0", 8080), listen on 0.0.0.0:8080

How do I graceful shutdown?

How do I pass data in request-level other than service inject?

There is a field called Data with type map[string]interface{} in *macaron.Contextarrow-up-right where you can store and retrieve any type of data. It comes with *macaron.Contextarrow-up-right so every request is independent.

See example herearrow-up-right.

What's the idea behind this other than Martini?

  • Integrate frequently used middlewares and helper methods with less reflection.

  • Replace default router with faster multi-tree router.

  • Make it much easier to power Gogsarrow-up-right project.

  • Make a deep source study against Martini.

Why Logo is a dragon?

Shouldn't it be some sort of dessert?

The transliteration of Macaron in Chinese is Maca Long, Long means dragon, so actually the Logo is a dragon whose name is Maca. Hah!

Live code reload?

Braarrow-up-right is the prefect fit for live reloading Macaron and other apps.

Last updated

Was this helpful?