本文整理汇总了Golang中github.com/julienschmidt/httprouter.Router类的典型用法代码示例。如果您正苦于以下问题:Golang Router类的具体用法?Golang Router怎么用?Golang Router使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Router类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: AddRoutes
func AddRoutes(router *httprouter.Router) {
mylog.Debugf("enter notice.AddRoutes(%+v)", router)
defer func() { mylog.Debugf("exit action.Handler(%+v)", router) }()
controller := &controller{&actionList}
router.POST("/action", controller.Post)
}
示例2: Register
func (e profileEndpoint) Register(mux *httprouter.Router) {
mux.GET("/profile/:userId/displayname", jsonHandler(e.getDisplayName))
mux.PUT("/profile/:userId/displayname", jsonHandler(e.setDisplayName))
mux.GET("/profile/:userId/avatar_url", jsonHandler(e.getAvatarUrl))
mux.PUT("/profile/:userId/avatar_url", jsonHandler(e.setAvatarUrl))
mux.GET("/profile/:userId", jsonHandler(e.getProfile))
}
示例3: myRouterConfig
func myRouterConfig(router *httprouter.Router) {
router.GET("/pepe", func(w http.ResponseWriter, req *http.Request, p httprouter.Params) {
fmt.Fprintln(w, "pepe")
})
router.GET("/", homeHandler)
}
示例4: httpRoutes
func (c *ChatService) httpRoutes(prefix string, router *httprouter.Router) http.Handler {
router.POST(prefix+"/push", c.onPushPost)
router.POST(prefix+"/register", c.onPushSubscribe)
router.GET(prefix+"/channel/:id/message", c.onGetChatHistory)
router.GET(prefix+"/channel/:id/message/:msg_id", c.onGetChatMessage)
router.GET(prefix+"/channel", c.onGetChannels)
return router
}
示例5: Register
func Register(router *httprouter.Router) {
router.GET("/storage/files", func(w http.ResponseWriter, req *http.Request, params httprouter.Params) {
encodedToken := req.Header.Get("X-Auth-Token")
// authMacaroon, err := macaroon.New(auth.Key, auth.ServiceID, auth.Location)
// if err != nil {
// log.Print(err)
// w.WriteHeader(500)
// w.Write([]byte("Oops, something went wrong..."))
// return
// }
token, err := base64.URLEncoding.DecodeString(encodedToken)
if err != nil {
log.Print(err)
w.WriteHeader(500)
w.Write([]byte("Oops, something went wrong..."))
return
}
userMacaroon := &macaroon.Macaroon{}
if err := userMacaroon.UnmarshalBinary(token); err != nil {
log.Print(err)
w.WriteHeader(500)
w.Write([]byte("Oops, something went wrong..."))
return
}
log.Printf("#### Macaroon caveats: %+v\n", userMacaroon.Caveats())
log.Printf("#### Macaroon signature: %+v\n", userMacaroon.Signature())
log.Printf("#### Macaroon id: %+v\n", userMacaroon.Id())
log.Printf("#### Macaroon location: %+v\n", userMacaroon.Location())
if err := userMacaroon.Verify(auth.Key, noCaveatsChecker, nil); err != nil {
log.Print(err)
w.WriteHeader(401)
w.Write([]byte(err.Error()))
return
}
response := struct {
Files []string `json:"files"`
}{
Files: []string{
"http://localhost:6061/storage/files/1",
"http://localhost:6061/storage/files/2",
"http://localhost:6061/storage/files/3",
},
}
if err := json.NewEncoder(w).Encode(response); err != nil {
log.Print(err)
w.WriteHeader(500)
w.Write([]byte(err.Error()))
}
})
}
示例6: Init
func Init(router *httprouter.Router) {
router.NotFound = http.FileServer(http.Dir(devsatic)).ServeHTTP
env := os.Getenv("production")
if env != "" {
router.NotFound = http.FileServer(http.Dir(diststatic)).ServeHTTP
}
}
示例7: source
func source(r *htr.Router) error {
r.GET("/source",
func(w http.ResponseWriter, r *http.Request, ps htr.Params) {
if _, err := io.WriteString(w, sourceDoc); err != nil {
log.Printf("failed to write response: %s", err.Error())
}
},
)
return nil
}
示例8: configure
// configure registers the API's routes on a router. If the passed router is nil, we create a new one and return it.
// The nil mode is used when an API is run in stand-alone mode.
func (a *API) configure(router *httprouter.Router) *httprouter.Router {
if router == nil {
router = httprouter.New()
}
for i, route := range a.Routes {
if err := route.parseInfo(route.Path); err != nil {
logging.Error("Error parsing info for %s: %s", route.Path, err)
}
a.Routes[i] = route
h := a.handler(route)
pth := a.FullPath(route.Path)
if route.Methods&GET == GET {
logging.Info("Registering GET handler %v to path %s", h, pth)
router.Handle("GET", pth, h)
}
if route.Methods&POST == POST {
logging.Info("Registering POST handler %v to path %s", h, pth)
router.Handle("POST", pth, h)
}
}
chain := buildChain(a.SwaggerMiddleware...)
if chain == nil {
chain = buildChain(a.swaggerHandler())
} else {
chain.append(a.swaggerHandler())
}
// Server the API documentation swagger
router.GET(a.FullPath("/swagger"), a.middlewareHandler(chain, nil, nil))
chain = buildChain(a.TestMiddleware...)
if chain == nil {
chain = buildChain(a.testHandler())
} else {
chain.append(a.testHandler())
}
router.GET(path.Join("/test", a.root(), ":category"), a.middlewareHandler(chain, nil, nil))
// Redirect /$api/$version/console => /console?url=/$api/$version/swagger
uiPath := fmt.Sprintf("/console?url=%s", url.QueryEscape(a.FullPath("/swagger")))
router.Handler("GET", a.FullPath("/console"), http.RedirectHandler(uiPath, 301))
return router
}
示例9: request
func request(r *httprouter.Router, method, path string, data []byte) (int,
string) {
req, err := http.NewRequest(method, path, bytes.NewBuffer(data))
if err != nil {
return 0, "err completing request: " + err.Error()
}
w := httptest.NewRecorder()
r.ServeHTTP(w, req)
return w.Code, string(w.Body.Bytes())
}
示例10: AddRoutes
// Add routes to http router
// TODO: Add route description parameters and useage
func AddRoutes(router *httprouter.Router) {
router.GET("/actions", Actions)
router.GET("/actions/:ActionId", ActionById)
router.POST("/set/:SetId", PostAction)
router.GET("/actions/:ActionId/occrurrences", Occurrences)
router.GET("/occurrences/:OccurrenceId", OccurrenceById)
// TODO:
// router.POST("/actions/:ActionId", postOccurrence)
// router.GET("/sets", sets)
// router.GET("/sets/:SetId/actions", actionsFromSet)
}
示例11: setMySQLHandlers
func setMySQLHandlers(r *httprouter.Router) {
r.GET("/MySQL", MySQL) // Read
// GET Handlers
r.GET("/Create", Create)
r.GET("/Update/:ID", Update)
r.GET("/Delete/:ID", Delete)
//Post Handlers
r.POST("/Create", CreateP)
r.POST("/Update/:ID", UpdateP)
}
示例12: Register
func (c *streamController) Register(router *httprouter.Router) {
router.PUT("/streams", basicAuth(timeRequest(c.handle(c.addToStream), addToStreamTimer), c.authConfig))
router.DELETE("/streams", basicAuth(timeRequest(c.handle(c.removeFromStream), removeFromStreamTimer), c.authConfig))
router.POST("/streams/coalesce", basicAuth(timeRequest(c.handle(c.coalesceStreams), coalesceTimer), c.authConfig))
router.GET("/stream/:id", basicAuth(timeRequest(c.handle(c.getStream), getStreamTimer), c.authConfig))
log.Debug("Routes Registered")
}
示例13: SetupRoutes
// SetupRoutes maps routes to the PubSub's handlers
func (ps *PubSub) SetupRoutes(router *httprouter.Router) *httprouter.Router {
router.POST("/:topic_name", ps.PublishMessage)
router.POST("/:topic_name/:subscriber_name", ps.Subscribe)
router.DELETE("/:topic_name/:subscriber_name", ps.Unsubscribe)
router.GET("/:topic_name/:subscriber_name", ps.GetMessages)
return router
}
示例14: APIv1
func (api *API) APIv1(r *httprouter.Router) {
r.POST("/api/v1/query/:query_lang", LogRequest(api.ServeV1Query))
r.POST("/api/v1/shape/:query_lang", LogRequest(api.ServeV1Shape))
r.POST("/api/v1/write", LogRequest(api.ServeV1Write))
r.POST("/api/v1/write/file/nquad", LogRequest(api.ServeV1WriteNQuad))
//TODO(barakmich): /write/text/nquad, which reads from request.body instead of HTML5 file form?
r.POST("/api/v1/delete", LogRequest(api.ServeV1Delete))
}
示例15: addUsersHandlers
// addUsersHandlers add Users handler to router
func addUsersHandlers(router *httprouter.Router) {
// add user
router.POST("/users/:user", wrapHandler(usersAdd))
// get all users
router.GET("/users", wrapHandler(usersGetAll))
// get one user
router.GET("/users/:user", wrapHandler(usersGetOne))
// del an user
router.DELETE("/users/:user", wrapHandler(usersDel))
// change user password
router.PUT("/users/:user", wrapHandler(usersUpdate))
}