本文整理汇总了Golang中github.com/ant0ine/go-json-rest/rest.MakeRouter函数的典型用法代码示例。如果您正苦于以下问题:Golang MakeRouter函数的具体用法?Golang MakeRouter怎么用?Golang MakeRouter使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了MakeRouter函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: main
func main() {
api := rest.NewApi()
statusMw := &rest.StatusMiddleware{}
api.Use(statusMw)
api.Use(rest.DefaultDevStack...)
auth := &rest.AuthBasicMiddleware{
Realm: "test zone",
Authenticator: func(userId string, password string) bool {
if userId == "admin" && password == "admin" {
return true
}
return false
},
}
router, err := rest.MakeRouter(
rest.Get("/countries", GetAllCountries),
rest.Get("/.status", auth.MiddlewareFunc(
func(w rest.ResponseWriter, r *rest.Request) {
w.WriteJson(statusMw.GetStatus())
},
)),
)
if err != nil {
log.Fatal(err)
}
api.SetApp(router)
log.Fatal(http.ListenAndServe(":8080", api.MakeHandler()))
}
示例2: StartServer
func (s *server) StartServer() error {
api := rest.NewApi()
router, err := rest.MakeRouter(
// system
&rest.Route{"GET", "/v1/ping", s.ping},
&rest.Route{"GET", "/v1/version", s.version},
// v1
&rest.Route{"GET", "/v1/secrets/:type/:name", s.serveSecret},
)
if err != nil {
return err
}
api.SetApp(router)
go func() {
s.builder.Conf.Logger.Infof("Starting API on %d", s.builder.Conf.ApiPort)
// 192.168.99.1
if err := http.ListenAndServe(fmt.Sprintf("%s:%d", s.builder.Conf.ApiBinding, s.builder.Conf.ApiPort), api.MakeHandler()); err != nil {
s.builder.Conf.Logger.Errorf("Failed to start API %s", err.Error())
os.Exit(2)
}
}()
return nil
}
示例3: main
func main() {
api := rest.NewApi()
api.Use(rest.DefaultDevStack...)
router, err := rest.MakeRouter(
rest.Get("/weather/#location", func(w rest.ResponseWriter, req *rest.Request) {
weather, err := GetWeather(req.PathParam("location"))
if err != nil {
rest.Error(w, err.Error(), http.StatusInternalServerError)
return
}
//w.WriteJson(&weather)
//
w.WriteJson(
&WeatherResponse{
Location: fmt.Sprintf("%s", weather.CityName),
Temperature: KelvinToFarenheit(weather.Main.Temp),
},
)
}),
)
if err != nil {
log.Fatal(err)
}
api.SetApp(router)
log.Fatal(http.ListenAndServe(":8080", api.MakeHandler()))
}
示例4: main
func main() {
api := rest.NewApi()
api.Use(rest.DefaultDevStack...)
/*
api.Use(&rest.CorsMiddleware{
RejectNonCorsRequests: false,
OriginValidator: func(origin string, request *rest.Request) bool {
return true
},
AllowedMethods: []string{"GET", "POST", "PUT"},
AllowedHeaders: []string{
"Accept", "Content-Type", "X-Custom-Header", "Origin"},
AccessControlAllowCredentials: true,
AccessControlMaxAge: 3600,
})
*/
router, err := rest.MakeRouter(
rest.Post("/test", test),
)
// 存在しないルート時
if err != nil {
log.Fatal(err)
}
api.SetApp(router)
log.Fatal(http.ListenAndServe(":9999", api.MakeHandler()))
}
示例5: MsgServerStart
func MsgServerStart() {
mqmsg := msgqueue.MqMsg{
Msg: message.NewMsg(),
}
persistent := PerMqAgent{
Msg: message.NewMsg(),
}
api := rest.NewApi()
api.Use(rest.DefaultDevStack...)
router, err := rest.MakeRouter(
//rest.Get("/test", msg.TestMsg),
rest.Get("/testmq/:mqid", msgqueue.DefaultMM.TestMq),
rest.Post("/send_msg/:mqid", mqmsg.PostMsg),
rest.Get("/receive_msg/:mqid", mqmsg.GetMsg),
rest.Post("/send/:mqid", persistent.PostMsg),
rest.Get("/receive/:mqid", persistent.GetMsg),
)
if err != nil {
log.Fatal(err)
}
api.SetApp(router)
log.Fatal(http.ListenAndServe(":"+ListenPort, api.MakeHandler()))
}
示例6: NewRest
// NewRest configures REST api handlers and wrappers.
func NewRest() *rest.Api {
api := rest.NewApi()
api.MakeHandler()
api.Use(rest.DefaultDevStack...)
api.Use(&rest.CorsMiddleware{
RejectNonCorsRequests: false,
OriginValidator: func(origin string, request *rest.Request) bool {
return true
},
AllowedMethods: []string{"GET", "POST"},
AllowedHeaders: []string{
"Accept", "Content-Type", "X-Custom-Header", "Origin"},
AccessControlAllowCredentials: true,
AccessControlMaxAge: 3600,
})
router, err := rest.MakeRouter(
rest.Post("/translations", translations),
rest.Post("/suggestions", suggestions),
rest.Get("/health", health),
)
if err != nil {
log.Fatal(err)
}
api.SetApp(router)
return api
}
示例7: main
/*
Microservice for accessing data
*/
func main() {
api := rest.NewApi()
api.Use(rest.DefaultDevStack...)
api.Use(
&rest.AuthBasicMiddleware{
Realm: "Smart Alarm Clock REST API",
Authenticator: auth.AuthenticateByFile,
Authorizator: auth.AuthorizeRequest})
router, err := rest.MakeRouter(
rest.Get("/test/:time", view.GetJSONMessage),
rest.Get("/calendar/next/:id", view.GetNextCalendarEntry),
)
if err != nil {
log.Fatal(err)
}
api.SetApp(router)
apilog.Init()
calcom.InitApis()
log.Fatal(
http.ListenAndServeTLS(":1443",
"/etc/sac/keys/cert.pem",
"/etc/sac/keys/key.pem",
api.MakeHandler(),
),
)
}
示例8: main
func main() {
api := rest.NewApi()
api.Use(rest.DefaultDevStack...)
router, err := rest.MakeRouter(
rest.Get("/message", func(w rest.ResponseWriter, req *rest.Request) {
for cpt := 1; cpt <= 10; cpt++ {
// wait 1 second
time.Sleep(time.Duration(1) * time.Second)
w.WriteJson(map[string]string{
"Message": fmt.Sprintf("%d seconds", cpt),
})
w.(http.ResponseWriter).Write([]byte("\n"))
// Flush the buffer to client
w.(http.Flusher).Flush()
}
}),
)
if err != nil {
log.Fatal(err)
}
api.SetApp(router)
server := &graceful.Server{
Timeout: 10 * time.Second,
Server: &http.Server{
Addr: ":8080",
Handler: api.MakeHandler(),
},
}
log.Fatal(server.ListenAndServe())
}
示例9: main
func main() {
// context
ctx = context.Background()
// db
hoge.BuildInstances()
// redis
redis_pool := newPool()
ctx = context.WithValue(ctx, "redis", redis_pool)
api := rest.NewApi()
api.Use(rest.DefaultDevStack...)
router, err := rest.MakeRouter(
rest.Post("/test", baseHandlerFunc(controller.Test)),
)
// 存在しないルート時
if err != nil {
log.Fatal(err)
}
api.SetApp(router)
httpErr := http.ListenAndServe(":9999", api.MakeHandler())
if httpErr != nil {
log.Fatal(err, "http error!!")
}
}
示例10: initRoutes
func initRoutes(restApi *rest.Api) {
authController := &AuthController{}
appController := &ApplicationController{}
typesController := &TypesController{}
router, err := rest.MakeRouter(
rest.Put(authController.Path(), authController.RegisterUserHandler),
rest.Post(authController.Path(), authController.LoginUserHandler),
rest.Put("/:appId"+authController.Path(), authController.AppRegisterUserHandler),
rest.Post("/:appId"+authController.Path(), authController.AppLoginUserHandler),
rest.Post(appController.Path(), appController.CreateApplicationHandler),
rest.Get(appController.Path(), appController.GetApplicationsHandler),
rest.Get(appController.Path()+"/:appId", appController.GetApplicationHandler),
rest.Delete(appController.Path()+"/:appId", appController.DeleteApplicationHandler),
rest.Put(appController.Path()+"/:appId", appController.UpdateApplicationHandler),
rest.Post("/:appId"+typesController.Path(), typesController.CreateTypeHandler),
rest.Delete("/:appId"+typesController.Path()+"/:typeName", typesController.DeleteType),
rest.Post("/:appId"+typesController.Path()+"/:typeName", typesController.InsertInTypeHandler),
rest.Get("/:appId"+typesController.Path()+"/:typeName", typesController.GetTypeDataHandler),
rest.Get("/:appId"+typesController.Path()+"/:typeName/:itemId", typesController.GetTypeItemById),
rest.Put("/:appId"+typesController.Path()+"/:typeName/:itemId", typesController.UpdateTypeItemById),
rest.Delete("/:appId"+typesController.Path()+"/:typeName/:itemId", typesController.DeleteTypeItemById),
)
if err != nil {
log.Fatal(err)
}
restApi.SetApp(router)
}
示例11: main
func main() {
// context
ctx = context.Background()
db := initDb()
ctx = context.WithValue(ctx, "test", "aaabbbccc")
ctx = context.WithValue(ctx, "DB", db)
// redis
redis_pool := newPool()
ctx = context.WithValue(ctx, "redis", redis_pool)
str := ctx.Value("test")
log.Println(str)
api := rest.NewApi()
api.Use(rest.DefaultDevStack...)
router, err := rest.MakeRouter(
rest.Post("/test", baseHandlerFunc(controller.Test)),
)
// 存在しないルート時
if err != nil {
log.Fatal(err)
}
api.SetApp(router)
log.Fatal(http.ListenAndServe(":9999", api.MakeHandler()))
}
示例12: StartServer
func (app *App) StartServer(addr string, dbFileName string) {
err := app.InitDB(dbFileName)
if err != nil {
log.Fatal(err)
}
api := rest.NewApi()
api.Use(rest.DefaultProdStack...)
api.Use(&rest.CorsMiddleware{
RejectNonCorsRequests: false,
AllowedMethods: []string{"GET", "POST"},
AllowedHeaders: []string{
"Accept", "Content-Type", "Origin"},
AccessControlAllowCredentials: true,
AccessControlMaxAge: 2592000,
OriginValidator: func(origin string, request *rest.Request) bool {
return true
},
})
router, err := rest.MakeRouter(
rest.Get("/latest", app.GetLatest),
rest.Get("/last", app.GetLast),
rest.Get("/all", app.GetAll),
rest.Post("/postEntry", app.PostEntry),
//rest.Post("/postSignedEntry", app.PostJwtEntry),
)
if err != nil {
log.Fatal(err)
}
api.SetApp(router)
log.Fatal(http.ListenAndServe(addr, api.MakeHandler()))
}
示例13: main
func main() {
logit.Info.Println("cpmcontainerapi: containeragent starting")
api := rest.NewApi()
api.Use(rest.DefaultDevStack...)
router, err := rest.MakeRouter(
&rest.Route{"GET", "/status", cpmcontainerapi.Status},
&rest.Route{"POST", "/remotewritefile", cpmcontainerapi.RemoteWritefile},
&rest.Route{"POST", "/seed", cpmcontainerapi.Seed},
&rest.Route{"POST", "/startpg", cpmcontainerapi.StartPG},
&rest.Route{"POST", "/stoppg", cpmcontainerapi.StopPG},
&rest.Route{"POST", "/startpgonstandby", cpmcontainerapi.StartPGOnStandby},
&rest.Route{"POST", "/initdb", cpmcontainerapi.Initdb},
&rest.Route{"POST", "/startpgpool", cpmcontainerapi.StartPgpool},
&rest.Route{"POST", "/stoppgpool", cpmcontainerapi.StopPgpool},
&rest.Route{"POST", "/basebackup", cpmcontainerapi.Basebackup},
&rest.Route{"POST", "/failover", cpmcontainerapi.Failover},
&rest.Route{"POST", "/controldata", cpmcontainerapi.Controldata},
&rest.Route{"POST", "/badgergenerate", cpmcontainerapi.BadgerGenerate},
&rest.Route{"POST", "/restore", cpmcontainerapi.Restore},
)
if err != nil {
log.Fatal(err)
}
api.SetApp(router)
http.Handle("/api/", http.StripPrefix("/api", api.MakeHandler()))
http.Handle("/static/", http.StripPrefix("/static", http.FileServer(http.Dir("/pgdata/pg_log"))))
log.Fatal(http.ListenAndServe(":10001", nil))
log.Fatal(http.ListenAndServeTLS(":10000", "/var/cpm/keys/cert.pem", "/var/cpm/keys/key.pem", nil))
}
示例14: MakeApi
func MakeApi() http.Handler {
api := rest.NewApi()
api.Use(rest.DefaultDevStack...)
jwtMiddleware := &jwt.JWTMiddleware{
Key: []byte("super secret key"),
Realm: "Spacebook",
Timeout: time.Hour,
MaxRefresh: time.Hour * 24,
Authenticator: authUser,
}
api.Use(&rest.IfMiddleware{
Condition: func(request *rest.Request) bool {
return request.URL.Path == "/pasteswithuser"
},
IfTrue: jwtMiddleware,
})
router, err := rest.MakeRouter(
&rest.Route{"GET", "/pastes/:id", GetPaste},
&rest.Route{"POST", "/pastes", PostPaste},
&rest.Route{"POST", "/pasteswithuser", PostPasteWithUser},
&rest.Route{"GET", "/pastes", GetAll},
&rest.Route{"POST", "/login", jwtMiddleware.LoginHandler},
)
if err != nil {
log.Fatal(err)
}
api.SetApp(router)
return api.MakeHandler()
}
示例15: main
func main() {
servePort := os.Getenv(servePortEnv)
if servePort == "" {
servePort = defaultServePort
}
api := rest.NewApi()
api.Use(rest.DefaultDevStack...)
router, err := rest.MakeRouter(
rest.Get("/rnd", genRndNumber),
)
if err != nil {
log.Fatal(err)
}
api.SetApp(router)
bindPort := fmt.Sprintf(":%s", servePort)
log.Printf("server listening on %s", bindPort)
log.Fatal(http.ListenAndServe(bindPort, api.MakeHandler()))
}