8000 GitHub - kalipsoaqua/banan: framework
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

kalipsoaqua/banan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 

Repository files navigation

banan

Маленький web framework

Директория для статики (css, js, ....) - public

Директория для template (html) - template

Функция Default() - инстализация

Функция Use(context) - добавить контекст (например базу данных)

Функция Middle(func) - добавить функцию middle для обработки до роутинга

Функция Get(pattern, handler),Post(pattern, handler),Put(pattern, handler),Delete(pattern, handler) - роутинг по url, pattern - путь по которому надо запустить, тот или иной handler

Функция Run(listen, [cert]) - запуск

RunAPI

  1. JSON(data, [CROSS])
  2. HTML(template, data, [NOINDEX])
  3. BuildHTML(template, data, [NOINDEX]) []byte
  4. TemplateHTML(template, data, [NOINDEX]) []byte
  5. IHTML(htmlString, data)
  6. TXT(txt, [CROSS])
  7. Form() - переданные данные GET,POST ....
  8. Set(name, value) - для сессии
  9. Get(name) - для сессии
  10. Delete(name) - для сессии
  11. Close() - для сессии
  12. RemoteIP()
  13. Body()
  14. Download(file)
  15. Redirect(url)

func HandlerParamTest(rw *web.RunAPI, param web.Param) {
  vv := rw.Form()
  log.Println(vv, param)
  rw.JSON(struct{OK int}{200})
}

func HandlerTest(rw *web.RunAPI) {
  vv := rw.Form()
  log.Println(vv)
  rw.JSON(struct{OK int}{200})
}

func HandlerDBTest(rw *web.RunAPI, db *sql.Db) {
  vv := rw.Form()
  .....
    rows, err := db.Query(.....)
  .....
  log.Println(vv)
  rw.JSON(struct{OK int}{200})
}

// func HandlerAllTest(db map[string]*AllAll, res http.ResponseWriter, req *http.Request) {
// func HandlerAllTest(db map[string]*AllAll, rw *web.RunAPI) {
func HandlerAllTest(rw *web.RunAPI, db map[string]*AllAll) {
  vv := rw.Form()
  .....
    db["test"] = .....
  .....
  log.Println(vv)
  rw.JSON(struct{OK int}{200})
}

// Test - test middleware
func Test() bool {
	return true // true - разрешить выполнение роутеров
}
  
// Test2 - test middleware
func Test2(rw *web.RunAPI, db *sql.Db) bool {
  .....
  rows, err := db.Query(......)
  .....
	return false // false -запретить выполнение роутеров
}


func main() {
  db := ..... // создать соединение с базой

  mydb := make(map[string]*AllAll)

  my := web.Default()
  my.Use(db)
  my.Use(mydb)

  my.Middle(Test)
  my.Middle(Test2)
  
  my.Get("/test", HandlerTest)
  my.Get("/test1", HandlerDBTest)
  my.Get("/test2", HandlerAllTest)
  my.Get("/test3/:param/:param/", HandlerParamTest)
  v := my.Route('/api/')
  {
    v.Get("list-1", func1)
    v.Get("list-2", func2)
    
  }
  my.Run("0.0.0.0:8888")
}

About

framework

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

0