Skip to content

maxiloEmmmm/go-web

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

go-web

go好像完全没必要用框架

快速开始

// main.go
contact.Init()
defer contact.Close()

// db := contact.InitDB("")
// defer db.Close()

InitRoute().Run(fmt.Sprintf(":%d", contact.Config.App.Port))

//route.go
r := gin.Default()
r.Use(contact.GinCors())
r.GET("/", contact.GinHelpHandle(func(c *contact.GinHelp) {
	c.Resource("hello world!")
}))

配置

新建config.yml 数据结构: contact/config.go

database

默认环境 Config.App.Mode

test:
  engine: mysql
  source: root:pass@tcp(localhost:3306)/test
release:
  engine: mysql
  source: root:pass@tcp(localhost:3306)/test
debug:
  engine: mysql
  source: root:pass@tcp(localhost:3306)/test

Generate

  1. entc init User
  2. edit User schema (must include id)
    func (User) Fields() []ent.Field {
        return []ent.Field{
            field.Int("id"),
            field.String("username"),
            field.String("password"),
        }
    }
  3. touch gen.go
    //go:generate go run github.com/maxiloEmmmm/go-web/generate {{ent_schema_path}}
  4. generate
    go generate gen.go

curd

gin

  1. generate

  2. main.go

    // ent
    client, err := ent.Open("sqlite3", "file:ent?mode=memory&cache=shared&_fk=1")
    if err != nil {
        log.Fatalf("failed opening connection to sqlite: %v", err)
    }
    defer client.Close()
    // Run the auto migration tool.
    if err := client.Schema.Create(context.Background()); err != nil {
        log.Fatalf("failed creating schema resources: %v", err)
    }
    
    engine := gin.Default()
    curd := ent.NewCurdBuilder(client)
    curd.Route("/api", engine, nil)
    engine.Run(":8000")
    [GIN-debug] GET    /api/user                 --> github.com/maxiloEmmmm/go-web/contact.GinHelpHandle.func1 (3 handlers)
    [GIN-debug] GET    /api/user/:id             --> github.com/maxiloEmmmm/go-web/contact.GinHelpHandle.func1 (3 handlers)
    [GIN-debug] POST   /api/user                 --> github.com/maxiloEmmmm/go-web/contact.GinHelpHandle.func1 (3 handlers)
    [GIN-debug] PATCH  /api/user/:id             --> github.com/maxiloEmmmm/go-web/contact.GinHelpHandle.func1 (3 handlers)
    [GIN-debug] DELETE /api/user/:id             --> github.com/maxiloEmmmm/go-web/contact.GinHelpHandle.func1 (3 handlers)