Skip to content

crudman completes common operations of adding, deleting, modifying and querying, making data operation more convenient

License

Notifications You must be signed in to change notification settings

kenretto/crudman

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

crudman

crudman completes common operations of adding, deleting, modifying and querying, making data operation more convenient

Example

Because only gorm is implemented now, take gorm as an example

  • For a complete example, you can view the example directory

  • Build a data structure

    type user struct {
    	gorm.Model
    	Nickname string `json:"nickname" gorm:"column:nickname;type:varchar(16)" validate:"required"`
    	Age      uint8  `json:"age" gorm:"column:age;"`
    }
  • Implement crudman.Tabler
// TableName table name
func (user) TableName() string {
	return "members"
}
  • Initialize the DB object
db, err = gorm.Open(sqlite.Open("file:pager?mode=memory&cache=shared&_fk=1"), &gorm.Config{PrepareStmt: true, Logger: logger.New(
		log.New(os.Stdout, "\r\n", log.LstdFlags), // io writer
		logger.Config{
			SlowThreshold: time.Second,
			LogLevel:      logger.Info,
			Colorful:      false,
		},
	)})

You can initialize and migrate some data.

  • func main
	var crud = crudman.New() // get a crudman instance

    // register your custom struct validator
	driver.SetValidator(func(obj interface{}) interface{} {
		return validator.New().Struct(obj)
	})

    // register a data struct
	crud.Register(driver.NewGorm(db, "ID"), user{}, crudman.SetRoute("/crud"))

    // register http handler
	http.HandleFunc("/", func(writer http.ResponseWriter, request *http.Request) {
		var obj, err = crud.Handler(writer, request)
		var body = map[string]interface{}{
			"data": obj,
			"msg": func() string {
				if err != nil {
					return err.Error()
				}
				return ""
			}(),
		}

		data, _ := json.Marshal(body)
		writer.Header().Set("Content-Type", "application/json")
		_, _ = writer.Write(data)
	})
	log.Fatalln(http.ListenAndServe(":3359", nil))

About

crudman completes common operations of adding, deleting, modifying and querying, making data operation more convenient

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages