func BlevePIndexImplInitRouter(r *mux.Router, phase string, mgr *cbgt.Manager) { prefix := "" if mgr != nil { prefix = mgr.Options()["urlPrefix"] } if phase == "static.before" { staticBleveMapping := http.FileServer(bleveMappingUI.AssetFS()) r.PathPrefix(prefix + "/static-bleve-mapping/").Handler( http.StripPrefix(prefix+"/static-bleve-mapping/", staticBleveMapping)) bleveMappingUI.RegisterHandlers(r, prefix+"/api") } if phase == "manager.after" { // Using standard bleveHttp handlers for /api/pindex-bleve endpoints. // listIndexesHandler := bleveHttp.NewListIndexesHandler() r.Handle(prefix+"/api/pindex-bleve", listIndexesHandler).Methods("GET") getIndexHandler := bleveHttp.NewGetIndexHandler() getIndexHandler.IndexNameLookup = rest.PIndexNameLookup r.Handle(prefix+"/api/pindex-bleve/{pindexName}", getIndexHandler).Methods("GET") docCountHandler := bleveHttp.NewDocCountHandler("") docCountHandler.IndexNameLookup = rest.PIndexNameLookup r.Handle(prefix+"/api/pindex-bleve/{pindexName}/count", docCountHandler).Methods("GET") searchHandler := bleveHttp.NewSearchHandler("") searchHandler.IndexNameLookup = rest.PIndexNameLookup r.Handle(prefix+"/api/pindex-bleve/{pindexName}/query", searchHandler).Methods("POST") docGetHandler := bleveHttp.NewDocGetHandler("") docGetHandler.IndexNameLookup = rest.PIndexNameLookup docGetHandler.DocIDLookup = rest.DocIDLookup r.Handle(prefix+"/api/pindex-bleve/{pindexName}/doc/{docID}", docGetHandler).Methods("GET") debugDocHandler := bleveHttp.NewDebugDocumentHandler("") debugDocHandler.IndexNameLookup = rest.PIndexNameLookup debugDocHandler.DocIDLookup = rest.DocIDLookup r.Handle(prefix+"/api/pindex-bleve/{pindexName}/docDebug/{docID}", debugDocHandler).Methods("GET") listFieldsHandler := bleveHttp.NewListFieldsHandler("") listFieldsHandler.IndexNameLookup = rest.PIndexNameLookup r.Handle(prefix+"/api/pindex-bleve/{pindexName}/fields", listFieldsHandler).Methods("GET") } }
func main() { flag.Parse() router := mux.NewRouter() router.StrictSlash(true) bleveMappingUI.RegisterHandlers(router, "/api") router.PathPrefix("/").Handler(http.FileServer(http.Dir("."))) // start the HTTP server http.Handle("/", router) log.Printf("Listening on %v", *bindAddr) log.Fatal(http.ListenAndServe(*bindAddr, nil)) }